From 67d999b8317282ca375f85344e81ebee7f063750 Mon Sep 17 00:00:00 2001 From: arrase Date: Thu, 17 Nov 2016 20:45:40 +0100 Subject: [PATCH] bug fix --- .../ui/hs/providers/HSContentProvider.java | 12 +++++- .../android/service/TorService.java | 37 +++++++++---------- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java b/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java index 9b52a37f..d3404995 100644 --- a/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java +++ b/app/src/main/java/org/torproject/android/ui/hs/providers/HSContentProvider.java @@ -106,7 +106,17 @@ public class HSContentProvider extends ContentProvider { @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { - return 0; + SQLiteDatabase db = mServerDB.getWritableDatabase(); + + String where = selection; + if (uriMatcher.match(uri) == ONION_ID) { + where = "_id=" + uri.getLastPathSegment(); + } + + Integer rows = db.update(HSDatabase.HS_DATA_TABLE_NAME, values, where, null); + mContext.getContentResolver().notifyChange(CONTENT_URI, null); + + return rows; } public static final class HiddenService implements BaseColumns { diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorService.java b/orbotservice/src/main/java/org/torproject/android/service/TorService.java index 915aad75..09a75cad 100644 --- a/orbotservice/src/main/java/org/torproject/android/service/TorService.java +++ b/orbotservice/src/main/java/org/torproject/android/service/TorService.java @@ -773,29 +773,28 @@ public class TorService extends Service implements TorServiceConstants, OrbotCon Integer HSLocalPort = hidden_services.getInt(hidden_services.getColumnIndex(HiddenService.PORT)); // Update only new domains - if(!"".equals(HSDomain)) - continue; + if(HSDomain == null || HSDomain.length() < 1) { + String hsDirPath = new File(appCacheHome,"hs" + HSLocalPort).getCanonicalPath(); + File file = new File(hsDirPath, "hostname"); - String hsDirPath = new File(appCacheHome,"hs" + HSLocalPort).getCanonicalPath(); - File file = new File(hsDirPath, "hostname"); + if (file.exists()) + { + ContentValues fields = new ContentValues(); - if (file.exists()) - { - ContentValues fields = new ContentValues(); - - try { - String onionHostname = Utils.readString(new FileInputStream(file)).trim(); - fields.put("domain", onionHostname); - mCR.update(CONTENT_URI, fields, "port=" + HSLocalPort , null); - } catch (FileNotFoundException e) { - logException("unable to read onion hostname file",e); - showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr); + try { + String onionHostname = Utils.readString(new FileInputStream(file)).trim(); + fields.put("domain", onionHostname); + mCR.update(CONTENT_URI, fields, "port=" + HSLocalPort , null); + } catch (FileNotFoundException e) { + logException("unable to read onion hostname file",e); + showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr); + } } - } - else - { - showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr); + else + { + showToolbarNotification(getString(R.string.unable_to_read_hidden_service_name), HS_NOTIFY_ID, R.drawable.ic_stat_notifyerr); + } } }