From af33e4c37bdad3151013553dbeafc3bc1e8043b0 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 28 May 2017 12:17:53 +0200 Subject: Import/Export activity --- .../antennapod/activity/ImportExportActivity.java | 183 +++++++++++++++++++++ .../preferences/PreferenceController.java | 8 + 2 files changed, 191 insertions(+) create mode 100644 app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java new file mode 100644 index 000000000..5cd562d45 --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -0,0 +1,183 @@ +package de.danoeh.antennapod.activity; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ListView; +import android.widget.ProgressBar; +import android.widget.RadioButton; +import android.widget.TextView; +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.adapter.StatisticsListAdapter; +import de.danoeh.antennapod.core.preferences.UserPreferences; +import de.danoeh.antennapod.core.storage.DBReader; +import de.danoeh.antennapod.core.storage.PodDBAdapter; +import de.danoeh.antennapod.core.util.Converter; +import rx.Observable; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.channels.FileChannel; + +/** + * Displays the 'statistics' screen + */ +public class ImportExportActivity extends AppCompatActivity { + private static final int READ_REQUEST_CODE = 41; + private static final int READ_REQUEST_CODE_DOCUMENT = 42; + + private static final String TAG = ImportExportActivity.class.getSimpleName(); + + + @Override + protected void onCreate(Bundle savedInstanceState) { + setTheme(UserPreferences.getTheme()); + super.onCreate(savedInstanceState); + getSupportActionBar().setDisplayShowHomeEnabled(true); + setContentView(R.layout.import_export_activity); + + + //backup(); + //restore(); + } + + @Override + public void onResume() { + super.onResume(); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == android.R.id.home) { + finish(); + return true; + } else { + return super.onOptionsItemSelected(item); + } + } + + private void restore() { + if(Build.VERSION.SDK_INT >= 19) { + Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); + intent.setType("*/*"); + startActivityForResult(intent, READ_REQUEST_CODE_DOCUMENT); + } else { + Intent intent = new Intent(Intent.ACTION_GET_CONTENT); + intent.setType("*/*"); + startActivityForResult(Intent.createChooser(intent, "Select a File to import"), READ_REQUEST_CODE); + } + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent resultData) { + File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); + + if (requestCode == READ_REQUEST_CODE_DOCUMENT && resultCode == RESULT_OK) { + if (resultData != null) { + Uri uri = resultData.getData(); + + try { + InputStream inputStream = getContentResolver().openInputStream(uri); + copyInputStreamToFile(inputStream, currentDB); + inputStream.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + } + } else if(requestCode == READ_REQUEST_CODE && resultCode == RESULT_OK) { + if (resultData != null) { + Uri uri = resultData.getData(); + try { + File backupDB = new File(getPath(getBaseContext(), uri)); + + if (backupDB.exists()) { + FileChannel src = new FileInputStream(currentDB).getChannel(); + FileChannel dst = new FileOutputStream(backupDB).getChannel(); + dst.transferFrom(src, 0, src.size()); + src.close(); + dst.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + private void copyInputStreamToFile(InputStream in, File file) { + try { + OutputStream out = new FileOutputStream(file); + byte[] buf = new byte[1024]; + int len; + while((len=in.read(buf))>0){ + out.write(buf,0,len); + } + out.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + private static String getPath(Context context, Uri uri) { + if ("content".equalsIgnoreCase(uri.getScheme())) { + String[] projection = { "_data" }; + Cursor cursor = null; + + try { + cursor = context.getContentResolver().query(uri, projection, null, null, null); + int column_index = cursor.getColumnIndexOrThrow("_data"); + if (cursor.moveToFirst()) { + return cursor.getString(column_index); + } + } catch (Exception e) { + // Eat it + } + } + else if ("file".equalsIgnoreCase(uri.getScheme())) { + return uri.getPath(); + } + + return null; + } + + private void backup() { + try { + File sd = Environment.getExternalStorageDirectory(); + + if (sd.canWrite()) { + File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); + File backupDB = new File(sd, "AntennaPodBackup.db"); + + if (currentDB.exists()) { + FileChannel src = new FileInputStream(currentDB).getChannel(); + FileChannel dst = new FileOutputStream(backupDB).getChannel(); + dst.transferFrom(src, 0, src.size()); + src.close(); + dst.close(); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java index 1ca0d0109..e8c35b9a7 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java @@ -39,6 +39,7 @@ import android.widget.Toast; import com.afollestad.materialdialogs.MaterialDialog; +import de.danoeh.antennapod.activity.ImportExportActivity; import org.apache.commons.lang3.ArrayUtils; import java.io.File; @@ -95,6 +96,7 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc private static final String PREF_OPML_EXPORT = "prefOpmlExport"; private static final String PREF_HTML_EXPORT = "prefHtmlExport"; private static final String STATISTICS = "statistics"; + private static final String IMPORT_EXPORT = "importExport"; private static final String PREF_ABOUT = "prefAbout"; private static final String PREF_CHOOSE_DATA_DIR = "prefChooseDataDir"; private static final String AUTO_DL_PREF_SCREEN = "prefAutoDownloadSettings"; @@ -191,6 +193,12 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc return true; } ); + ui.findPreference(PreferenceController.IMPORT_EXPORT).setOnPreferenceClickListener( + preference -> { + activity.startActivity(new Intent(activity, ImportExportActivity.class)); + return true; + } + ); ui.findPreference(PreferenceController.PREF_OPML_EXPORT).setOnPreferenceClickListener( preference -> export(new OpmlWriter())); ui.findPreference(PreferenceController.PREF_HTML_EXPORT).setOnPreferenceClickListener( -- cgit v1.2.3 From 4cb4a0a0cbb65bc0db58ce24cc665f38a06ee208 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Mon, 16 Oct 2017 00:06:17 +0200 Subject: Supporting export using documents store API --- .../antennapod/activity/ImportExportActivity.java | 117 ++++++++++++++------- 1 file changed, 79 insertions(+), 38 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java index 5cd562d45..adaf5fe50 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -2,48 +2,34 @@ package de.danoeh.antennapod.activity; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.database.Cursor; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Environment; -import android.support.v7.app.AlertDialog; +import android.os.ParcelFileDescriptor; +import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; -import android.util.Log; -import android.view.Menu; -import android.view.MenuInflater; import android.view.MenuItem; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ListView; -import android.widget.ProgressBar; -import android.widget.RadioButton; -import android.widget.TextView; import de.danoeh.antennapod.R; -import de.danoeh.antennapod.adapter.StatisticsListAdapter; import de.danoeh.antennapod.core.preferences.UserPreferences; -import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.PodDBAdapter; -import de.danoeh.antennapod.core.util.Converter; -import rx.Observable; -import rx.Subscription; -import rx.android.schedulers.AndroidSchedulers; -import rx.schedulers.Schedulers; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.nio.channels.FileChannel; /** - * Displays the 'statistics' screen + * Displays the 'import/export' screen */ public class ImportExportActivity extends AppCompatActivity { - private static final int READ_REQUEST_CODE = 41; - private static final int READ_REQUEST_CODE_DOCUMENT = 42; + private static final int READ_REQUEST_CODE = 42; + private static final int READ_REQUEST_CODE_DOCUMENT = 43; + private static final int WRITE_REQUEST_CODE_DOCUMENT = 44; private static final String TAG = ImportExportActivity.class.getSimpleName(); @@ -55,9 +41,8 @@ public class ImportExportActivity extends AppCompatActivity { getSupportActionBar().setDisplayShowHomeEnabled(true); setContentView(R.layout.import_export_activity); - - //backup(); - //restore(); + findViewById(R.id.button_export).setOnClickListener(view -> backup()); + findViewById(R.id.button_import).setOnClickListener(view -> restore()); } @Override @@ -83,7 +68,7 @@ public class ImportExportActivity extends AppCompatActivity { } else { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); - startActivityForResult(Intent.createChooser(intent, "Select a File to import"), READ_REQUEST_CODE); + startActivityForResult(Intent.createChooser(intent, getString(R.string.import_select_file)), READ_REQUEST_CODE); } } @@ -104,6 +89,11 @@ public class ImportExportActivity extends AppCompatActivity { } } + } else if (requestCode == WRITE_REQUEST_CODE_DOCUMENT && resultCode == RESULT_OK) { + if (resultData != null) { + Uri uri = resultData.getData(); + writeBackupDocument(uri); + } } else if(requestCode == READ_REQUEST_CODE && resultCode == RESULT_OK) { if (resultData != null) { Uri uri = resultData.getData(); @@ -151,6 +141,8 @@ public class ImportExportActivity extends AppCompatActivity { } } catch (Exception e) { // Eat it + } finally { + cursor.close(); } } else if ("file".equalsIgnoreCase(uri.getScheme())) { @@ -161,23 +153,72 @@ public class ImportExportActivity extends AppCompatActivity { } private void backup() { - try { - File sd = Environment.getExternalStorageDirectory(); - - if (sd.canWrite()) { - File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); - File backupDB = new File(sd, "AntennaPodBackup.db"); - - if (currentDB.exists()) { - FileChannel src = new FileInputStream(currentDB).getChannel(); - FileChannel dst = new FileOutputStream(backupDB).getChannel(); - dst.transferFrom(src, 0, src.size()); - src.close(); - dst.close(); + if (Build.VERSION.SDK_INT >= 19) { + Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT) + .addCategory(Intent.CATEGORY_OPENABLE) + .setType("application/x-sqlite3") + .putExtra(Intent.EXTRA_TITLE, "AntennaPodBackup.db"); + + startActivityForResult(intent, WRITE_REQUEST_CODE_DOCUMENT); + } else { + try { + File sd = Environment.getExternalStorageDirectory(); + + if (sd.canWrite()) { + File backupDB = new File(sd, "AntennaPodBackup.db"); + writeBackup(new FileOutputStream(backupDB)); + } else { + Snackbar.make(findViewById(R.id.import_export_layout), + "Can not write SD", Snackbar.LENGTH_SHORT).show(); } + } catch (Exception e) { + e.printStackTrace(); + + Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); + } + } + } + + void writeBackup(FileOutputStream outFileStream) { + try { + File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); + + if (currentDB.exists()) { + FileChannel src = new FileInputStream(currentDB).getChannel(); + FileChannel dst = outFileStream.getChannel(); + dst.transferFrom(src, 0, src.size()); + src.close(); + dst.close(); + + Snackbar.make(findViewById(R.id.import_export_layout), + R.string.export_ok, Snackbar.LENGTH_SHORT).show(); + } else { + Snackbar.make(findViewById(R.id.import_export_layout), + "Can not access current database", Snackbar.LENGTH_SHORT).show(); } } catch (Exception e) { e.printStackTrace(); + + Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); } } + + private void writeBackupDocument(Uri uri) { + try { + ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "w"); + FileOutputStream fileOutputStream = new FileOutputStream(pfd.getFileDescriptor()); + writeBackup(fileOutputStream); + fileOutputStream.close(); + pfd.close(); + + Snackbar.make(findViewById(R.id.import_export_layout), + R.string.export_ok, Snackbar.LENGTH_SHORT).show(); + } catch (IOException e) { + e.printStackTrace(); + + Snackbar.make(findViewById(R.id.import_export_layout), + "Can not write SD", Snackbar.LENGTH_SHORT).show(); + } + } + } -- cgit v1.2.3 From 2e5407370fd9bdcf4646140d6dd9563cbb8cca72 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sat, 21 Oct 2017 20:08:11 +0200 Subject: Showing dialog when import succeeds --- .../antennapod/activity/ImportExportActivity.java | 54 ++++++++++++---------- 1 file changed, 29 insertions(+), 25 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java index adaf5fe50..a0388cb03 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -1,5 +1,6 @@ package de.danoeh.antennapod.activity; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.database.Cursor; @@ -9,6 +10,8 @@ import android.os.Bundle; import android.os.Environment; import android.os.ParcelFileDescriptor; import android.support.design.widget.Snackbar; +import android.support.v4.content.IntentCompat; +import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import de.danoeh.antennapod.R; @@ -74,20 +77,10 @@ public class ImportExportActivity extends AppCompatActivity { @Override public void onActivityResult(int requestCode, int resultCode, Intent resultData) { - File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); - if (requestCode == READ_REQUEST_CODE_DOCUMENT && resultCode == RESULT_OK) { if (resultData != null) { Uri uri = resultData.getData(); - - try { - InputStream inputStream = getContentResolver().openInputStream(uri); - copyInputStreamToFile(inputStream, currentDB); - inputStream.close(); - } catch (Exception e) { - e.printStackTrace(); - } - + writeDatabase(uri); } } else if (requestCode == WRITE_REQUEST_CODE_DOCUMENT && resultCode == RESULT_OK) { if (resultData != null) { @@ -97,23 +90,34 @@ public class ImportExportActivity extends AppCompatActivity { } else if(requestCode == READ_REQUEST_CODE && resultCode == RESULT_OK) { if (resultData != null) { Uri uri = resultData.getData(); - try { - File backupDB = new File(getPath(getBaseContext(), uri)); - - if (backupDB.exists()) { - FileChannel src = new FileInputStream(currentDB).getChannel(); - FileChannel dst = new FileOutputStream(backupDB).getChannel(); - dst.transferFrom(src, 0, src.size()); - src.close(); - dst.close(); - } - } catch (Exception e) { - e.printStackTrace(); - } + writeDatabase(uri); } } } + private void writeDatabase(Uri inputUri) { + File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); + try { + InputStream inputStream = getContentResolver().openInputStream(inputUri); + copyInputStreamToFile(inputStream, currentDB); + inputStream.close(); + + AlertDialog.Builder d = new AlertDialog.Builder(ImportExportActivity.this); + d.setMessage(R.string.import_ok); + d.setCancelable(false); + d.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> { + Intent intent = new Intent(getApplicationContext(), SplashActivity.class); + ComponentName cn = intent.getComponent(); + Intent mainIntent = IntentCompat.makeRestartActivityTask(cn); + startActivity(mainIntent); + }); + d.show(); + } catch (Exception e) { + e.printStackTrace(); + Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); + } + } + private void copyInputStreamToFile(InputStream in, File file) { try { OutputStream out = new FileOutputStream(file); @@ -179,7 +183,7 @@ public class ImportExportActivity extends AppCompatActivity { } } - void writeBackup(FileOutputStream outFileStream) { + private void writeBackup(FileOutputStream outFileStream) { try { File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); -- cgit v1.2.3 From b665792d2920a1f6116289492d92c739c3706c7b Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 24 Dec 2017 13:11:41 +0100 Subject: Cleanup import/export --- .../antennapod/activity/ImportExportActivity.java | 166 ++++++++------------- 1 file changed, 62 insertions(+), 104 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java index a0388cb03..862420325 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -1,9 +1,7 @@ package de.danoeh.antennapod.activity; import android.content.ComponentName; -import android.content.Context; import android.content.Intent; -import android.database.Cursor; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -30,12 +28,8 @@ import java.nio.channels.FileChannel; * Displays the 'import/export' screen */ public class ImportExportActivity extends AppCompatActivity { - private static final int READ_REQUEST_CODE = 42; - private static final int READ_REQUEST_CODE_DOCUMENT = 43; - private static final int WRITE_REQUEST_CODE_DOCUMENT = 44; - - private static final String TAG = ImportExportActivity.class.getSimpleName(); - + private static final int REQUEST_CODE_RESTORE = 43; + private static final int REQUEST_CODE_BACKUP_DOCUMENT = 44; @Override protected void onCreate(Bundle savedInstanceState) { @@ -63,68 +57,83 @@ public class ImportExportActivity extends AppCompatActivity { } } + private void backup() { + if (Build.VERSION.SDK_INT >= 19) { + Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT) + .addCategory(Intent.CATEGORY_OPENABLE) + .setType("application/x-sqlite3") + .putExtra(Intent.EXTRA_TITLE, "AntennaPodBackup.db"); + + startActivityForResult(intent, REQUEST_CODE_BACKUP_DOCUMENT); + } else { + try { + File sd = Environment.getExternalStorageDirectory(); + File backupDB = new File(sd, "AntennaPodBackup.db"); + writeBackupTo(new FileOutputStream(backupDB)); + } catch (Exception e) { + e.printStackTrace(); + Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); + } + } + } + private void restore() { if(Build.VERSION.SDK_INT >= 19) { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.setType("*/*"); - startActivityForResult(intent, READ_REQUEST_CODE_DOCUMENT); + startActivityForResult(intent, REQUEST_CODE_RESTORE); } else { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); - startActivityForResult(Intent.createChooser(intent, getString(R.string.import_select_file)), READ_REQUEST_CODE); + startActivityForResult(Intent.createChooser(intent, + getString(R.string.import_select_file)), REQUEST_CODE_RESTORE); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent resultData) { - if (requestCode == READ_REQUEST_CODE_DOCUMENT && resultCode == RESULT_OK) { - if (resultData != null) { - Uri uri = resultData.getData(); - writeDatabase(uri); - } - } else if (requestCode == WRITE_REQUEST_CODE_DOCUMENT && resultCode == RESULT_OK) { - if (resultData != null) { - Uri uri = resultData.getData(); - writeBackupDocument(uri); - } - } else if(requestCode == READ_REQUEST_CODE && resultCode == RESULT_OK) { - if (resultData != null) { - Uri uri = resultData.getData(); - writeDatabase(uri); - } + if (requestCode == REQUEST_CODE_RESTORE && resultCode == RESULT_OK && resultData != null) { + Uri uri = resultData.getData(); + restoreFrom(uri); + } else if (requestCode == REQUEST_CODE_BACKUP_DOCUMENT && resultCode == RESULT_OK && resultData != null) { + Uri uri = resultData.getData(); + backupToDocument(uri); } } - private void writeDatabase(Uri inputUri) { + private void restoreFrom(Uri inputUri) { File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); try { InputStream inputStream = getContentResolver().openInputStream(inputUri); copyInputStreamToFile(inputStream, currentDB); inputStream.close(); - - AlertDialog.Builder d = new AlertDialog.Builder(ImportExportActivity.this); - d.setMessage(R.string.import_ok); - d.setCancelable(false); - d.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> { - Intent intent = new Intent(getApplicationContext(), SplashActivity.class); - ComponentName cn = intent.getComponent(); - Intent mainIntent = IntentCompat.makeRestartActivityTask(cn); - startActivity(mainIntent); - }); - d.show(); + displayImportSuccessDialog(); } catch (Exception e) { e.printStackTrace(); Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); } } + private void displayImportSuccessDialog() { + AlertDialog.Builder d = new AlertDialog.Builder(ImportExportActivity.this); + d.setMessage(R.string.import_ok); + d.setCancelable(false); + d.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> { + Intent intent = new Intent(getApplicationContext(), SplashActivity.class); + ComponentName cn = intent.getComponent(); + Intent mainIntent = IntentCompat.makeRestartActivityTask(cn); + startActivity(mainIntent); + }); + d.show(); + } + private void copyInputStreamToFile(InputStream in, File file) { try { OutputStream out = new FileOutputStream(file); byte[] buf = new byte[1024]; int len; - while((len=in.read(buf))>0){ - out.write(buf,0,len); + while ((len = in.read(buf)) > 0){ + out.write(buf, 0, len); } out.close(); } catch (Exception e) { @@ -132,58 +141,25 @@ public class ImportExportActivity extends AppCompatActivity { } } - private static String getPath(Context context, Uri uri) { - if ("content".equalsIgnoreCase(uri.getScheme())) { - String[] projection = { "_data" }; - Cursor cursor = null; - - try { - cursor = context.getContentResolver().query(uri, projection, null, null, null); - int column_index = cursor.getColumnIndexOrThrow("_data"); - if (cursor.moveToFirst()) { - return cursor.getString(column_index); - } - } catch (Exception e) { - // Eat it - } finally { - cursor.close(); - } - } - else if ("file".equalsIgnoreCase(uri.getScheme())) { - return uri.getPath(); - } - - return null; - } - - private void backup() { - if (Build.VERSION.SDK_INT >= 19) { - Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT) - .addCategory(Intent.CATEGORY_OPENABLE) - .setType("application/x-sqlite3") - .putExtra(Intent.EXTRA_TITLE, "AntennaPodBackup.db"); - - startActivityForResult(intent, WRITE_REQUEST_CODE_DOCUMENT); - } else { - try { - File sd = Environment.getExternalStorageDirectory(); + private void backupToDocument(Uri uri) { + try { + ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "w"); + FileOutputStream fileOutputStream = new FileOutputStream(pfd.getFileDescriptor()); + writeBackupTo(fileOutputStream); + fileOutputStream.close(); + pfd.close(); - if (sd.canWrite()) { - File backupDB = new File(sd, "AntennaPodBackup.db"); - writeBackup(new FileOutputStream(backupDB)); - } else { - Snackbar.make(findViewById(R.id.import_export_layout), - "Can not write SD", Snackbar.LENGTH_SHORT).show(); - } - } catch (Exception e) { - e.printStackTrace(); + Snackbar.make(findViewById(R.id.import_export_layout), + R.string.export_ok, Snackbar.LENGTH_SHORT).show(); + } catch (IOException e) { + e.printStackTrace(); - Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); - } + Snackbar.make(findViewById(R.id.import_export_layout), + "Can not write SD", Snackbar.LENGTH_SHORT).show(); } } - private void writeBackup(FileOutputStream outFileStream) { + private void writeBackupTo(FileOutputStream outFileStream) { try { File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); @@ -207,22 +183,4 @@ public class ImportExportActivity extends AppCompatActivity { } } - private void writeBackupDocument(Uri uri) { - try { - ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "w"); - FileOutputStream fileOutputStream = new FileOutputStream(pfd.getFileDescriptor()); - writeBackup(fileOutputStream); - fileOutputStream.close(); - pfd.close(); - - Snackbar.make(findViewById(R.id.import_export_layout), - R.string.export_ok, Snackbar.LENGTH_SHORT).show(); - } catch (IOException e) { - e.printStackTrace(); - - Snackbar.make(findViewById(R.id.import_export_layout), - "Can not write SD", Snackbar.LENGTH_SHORT).show(); - } - } - } -- cgit v1.2.3 From 3fd3db6c579c0ab4d5388f4796e552e02443c784 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Mon, 25 Dec 2017 22:42:41 +0100 Subject: Review changes --- .../java/de/danoeh/antennapod/activity/ImportExportActivity.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java index 862420325..4d36e86de 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -30,6 +30,7 @@ import java.nio.channels.FileChannel; public class ImportExportActivity extends AppCompatActivity { private static final int REQUEST_CODE_RESTORE = 43; private static final int REQUEST_CODE_BACKUP_DOCUMENT = 44; + private static final String EXPORT_FILENAME = "AntennaPodBackup.db"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -62,13 +63,13 @@ public class ImportExportActivity extends AppCompatActivity { Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT) .addCategory(Intent.CATEGORY_OPENABLE) .setType("application/x-sqlite3") - .putExtra(Intent.EXTRA_TITLE, "AntennaPodBackup.db"); + .putExtra(Intent.EXTRA_TITLE, EXPORT_FILENAME); startActivityForResult(intent, REQUEST_CODE_BACKUP_DOCUMENT); } else { try { File sd = Environment.getExternalStorageDirectory(); - File backupDB = new File(sd, "AntennaPodBackup.db"); + File backupDB = new File(sd, EXPORT_FILENAME); writeBackupTo(new FileOutputStream(backupDB)); } catch (Exception e) { e.printStackTrace(); @@ -78,7 +79,7 @@ public class ImportExportActivity extends AppCompatActivity { } private void restore() { - if(Build.VERSION.SDK_INT >= 19) { + if (Build.VERSION.SDK_INT >= 19) { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.setType("*/*"); startActivityForResult(intent, REQUEST_CODE_RESTORE); -- cgit v1.2.3 From bc9bd0bfcf1678655b22239cebadf365b453c72c Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 7 Jan 2018 20:09:28 +0100 Subject: Style changes and logging --- .../antennapod/activity/ImportExportActivity.java | 46 +++++++++++----------- 1 file changed, 22 insertions(+), 24 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java index 4d36e86de..fdf8b73b2 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -11,6 +11,7 @@ import android.support.design.widget.Snackbar; import android.support.v4.content.IntentCompat; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; +import android.util.Log; import android.view.MenuItem; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.preferences.UserPreferences; @@ -31,6 +32,7 @@ public class ImportExportActivity extends AppCompatActivity { private static final int REQUEST_CODE_RESTORE = 43; private static final int REQUEST_CODE_BACKUP_DOCUMENT = 44; private static final String EXPORT_FILENAME = "AntennaPodBackup.db"; + private static final String TAG = ImportExportActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -43,11 +45,6 @@ public class ImportExportActivity extends AppCompatActivity { findViewById(R.id.button_import).setOnClickListener(view -> restore()); } - @Override - public void onResume() { - super.onResume(); - } - @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { @@ -71,9 +68,9 @@ public class ImportExportActivity extends AppCompatActivity { File sd = Environment.getExternalStorageDirectory(); File backupDB = new File(sd, EXPORT_FILENAME); writeBackupTo(new FileOutputStream(backupDB)); - } catch (Exception e) { - e.printStackTrace(); - Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); + } catch (IOException e) { + Log.e(TAG, Log.getStackTraceString(e)); + Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); } } } @@ -93,10 +90,14 @@ public class ImportExportActivity extends AppCompatActivity { @Override public void onActivityResult(int requestCode, int resultCode, Intent resultData) { - if (requestCode == REQUEST_CODE_RESTORE && resultCode == RESULT_OK && resultData != null) { + if (resultCode != RESULT_OK || resultData == null) { + return; + } + + if (requestCode == REQUEST_CODE_RESTORE) { Uri uri = resultData.getData(); restoreFrom(uri); - } else if (requestCode == REQUEST_CODE_BACKUP_DOCUMENT && resultCode == RESULT_OK && resultData != null) { + } else if (requestCode == REQUEST_CODE_BACKUP_DOCUMENT) { Uri uri = resultData.getData(); backupToDocument(uri); } @@ -109,9 +110,9 @@ public class ImportExportActivity extends AppCompatActivity { copyInputStreamToFile(inputStream, currentDB); inputStream.close(); displayImportSuccessDialog(); - } catch (Exception e) { - e.printStackTrace(); - Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); + } catch (IOException e) { + Log.e(TAG, Log.getStackTraceString(e)); + Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); } } @@ -137,8 +138,9 @@ public class ImportExportActivity extends AppCompatActivity { out.write(buf, 0, len); } out.close(); - } catch (Exception e) { - e.printStackTrace(); + } catch (IOException e) { + Log.e(TAG, Log.getStackTraceString(e)); + Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); } } @@ -153,10 +155,8 @@ public class ImportExportActivity extends AppCompatActivity { Snackbar.make(findViewById(R.id.import_export_layout), R.string.export_ok, Snackbar.LENGTH_SHORT).show(); } catch (IOException e) { - e.printStackTrace(); - - Snackbar.make(findViewById(R.id.import_export_layout), - "Can not write SD", Snackbar.LENGTH_SHORT).show(); + Log.e(TAG, Log.getStackTraceString(e)); + Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); } } @@ -177,11 +177,9 @@ public class ImportExportActivity extends AppCompatActivity { Snackbar.make(findViewById(R.id.import_export_layout), "Can not access current database", Snackbar.LENGTH_SHORT).show(); } - } catch (Exception e) { - e.printStackTrace(); - - Snackbar.make(findViewById(R.id.import_export_layout), e.getMessage(), Snackbar.LENGTH_SHORT).show(); + } catch (IOException e) { + Log.e(TAG, Log.getStackTraceString(e)); + Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); } } - } -- cgit v1.2.3 From 4c00f764943580e928feb4851d3fdc68594613dc Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 7 Jan 2018 20:14:49 +0100 Subject: Closing correctly --- .../antennapod/activity/ImportExportActivity.java | 42 +++++++++++++++------- 1 file changed, 30 insertions(+), 12 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java index fdf8b73b2..7e63ae1a6 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -16,6 +16,7 @@ import android.view.MenuItem; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.PodDBAdapter; +import org.apache.commons.io.IOUtils; import java.io.File; import java.io.FileInputStream; @@ -105,14 +106,16 @@ public class ImportExportActivity extends AppCompatActivity { private void restoreFrom(Uri inputUri) { File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); + InputStream inputStream = null; try { - InputStream inputStream = getContentResolver().openInputStream(inputUri); + inputStream = getContentResolver().openInputStream(inputUri); copyInputStreamToFile(inputStream, currentDB); - inputStream.close(); displayImportSuccessDialog(); } catch (IOException e) { Log.e(TAG, Log.getStackTraceString(e)); Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); + } finally { + IOUtils.closeQuietly(inputStream); } } @@ -130,46 +133,58 @@ public class ImportExportActivity extends AppCompatActivity { } private void copyInputStreamToFile(InputStream in, File file) { + OutputStream out = null; try { - OutputStream out = new FileOutputStream(file); + out = new FileOutputStream(file); byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) > 0){ out.write(buf, 0, len); } - out.close(); } catch (IOException e) { Log.e(TAG, Log.getStackTraceString(e)); Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); + } finally { + IOUtils.closeQuietly(out); } } private void backupToDocument(Uri uri) { + ParcelFileDescriptor pfd = null; + FileOutputStream fileOutputStream = null; try { - ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "w"); - FileOutputStream fileOutputStream = new FileOutputStream(pfd.getFileDescriptor()); + pfd = getContentResolver().openFileDescriptor(uri, "w"); + fileOutputStream = new FileOutputStream(pfd.getFileDescriptor()); writeBackupTo(fileOutputStream); - fileOutputStream.close(); - pfd.close(); Snackbar.make(findViewById(R.id.import_export_layout), R.string.export_ok, Snackbar.LENGTH_SHORT).show(); } catch (IOException e) { Log.e(TAG, Log.getStackTraceString(e)); Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); + } finally { + IOUtils.closeQuietly(fileOutputStream); + + if (pfd != null) { + try { + pfd.close(); + } catch (IOException e) { + Log.d(TAG, "Unable to close ParcelFileDescriptor"); + } + } } } private void writeBackupTo(FileOutputStream outFileStream) { + FileChannel src = null; + FileChannel dst = null; try { File currentDB = getDatabasePath(PodDBAdapter.DATABASE_NAME); if (currentDB.exists()) { - FileChannel src = new FileInputStream(currentDB).getChannel(); - FileChannel dst = outFileStream.getChannel(); + src = new FileInputStream(currentDB).getChannel(); + dst = outFileStream.getChannel(); dst.transferFrom(src, 0, src.size()); - src.close(); - dst.close(); Snackbar.make(findViewById(R.id.import_export_layout), R.string.export_ok, Snackbar.LENGTH_SHORT).show(); @@ -180,6 +195,9 @@ public class ImportExportActivity extends AppCompatActivity { } catch (IOException e) { Log.e(TAG, Log.getStackTraceString(e)); Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); + } finally { + IOUtils.closeQuietly(src); + IOUtils.closeQuietly(dst); } } } -- cgit v1.2.3 From 12456b52def840fcfdf35e50cf376f2d79d7c8ba Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 7 Jan 2018 20:17:18 +0100 Subject: Using FileUtils.copyInputStreamToFile --- .../antennapod/activity/ImportExportActivity.java | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java index 7e63ae1a6..01fcfe83d 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -16,6 +16,7 @@ import android.view.MenuItem; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.storage.PodDBAdapter; +import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import java.io.File; @@ -23,7 +24,6 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import java.nio.channels.FileChannel; /** @@ -109,7 +109,7 @@ public class ImportExportActivity extends AppCompatActivity { InputStream inputStream = null; try { inputStream = getContentResolver().openInputStream(inputUri); - copyInputStreamToFile(inputStream, currentDB); + FileUtils.copyInputStreamToFile(inputStream, currentDB); displayImportSuccessDialog(); } catch (IOException e) { Log.e(TAG, Log.getStackTraceString(e)); @@ -132,23 +132,6 @@ public class ImportExportActivity extends AppCompatActivity { d.show(); } - private void copyInputStreamToFile(InputStream in, File file) { - OutputStream out = null; - try { - out = new FileOutputStream(file); - byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) > 0){ - out.write(buf, 0, len); - } - } catch (IOException e) { - Log.e(TAG, Log.getStackTraceString(e)); - Snackbar.make(findViewById(R.id.import_export_layout), e.getLocalizedMessage(), Snackbar.LENGTH_SHORT).show(); - } finally { - IOUtils.closeQuietly(out); - } - } - private void backupToDocument(Uri uri) { ParcelFileDescriptor pfd = null; FileOutputStream fileOutputStream = null; -- cgit v1.2.3 From dc316074e8b5c408c7dc7eff7b16f9ffd8978ac7 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Sun, 7 Jan 2018 20:19:29 +0100 Subject: Simplified onActivityResult --- .../main/java/de/danoeh/antennapod/activity/ImportExportActivity.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java index 01fcfe83d..6a97adcc3 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/ImportExportActivity.java @@ -94,12 +94,11 @@ public class ImportExportActivity extends AppCompatActivity { if (resultCode != RESULT_OK || resultData == null) { return; } + Uri uri = resultData.getData(); if (requestCode == REQUEST_CODE_RESTORE) { - Uri uri = resultData.getData(); restoreFrom(uri); } else if (requestCode == REQUEST_CODE_BACKUP_DOCUMENT) { - Uri uri = resultData.getData(); backupToDocument(uri); } } -- cgit v1.2.3 From 118d9103c124700d82f5f50e2b8a7b2b8a5cb4ad Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Sat, 20 Jan 2018 18:26:08 -0800 Subject: Make some inner classes static This avoids an implicit this field and can help GC. Found via error-prone. --- app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java | 2 +- .../main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java | 2 +- app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java index 21951dc0e..cc9db5e6e 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/FeedInfoActivity.java @@ -379,7 +379,7 @@ public class FeedInfoActivity extends AppCompatActivity { } } - private class ApplyToEpisodesDialog extends ConfirmationDialog { + private static class ApplyToEpisodesDialog extends ConfirmationDialog { private final Feed feed; private final boolean autoDownload; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java index f1f8be559..64912ba9b 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/itunes/ItunesAdapter.java @@ -162,7 +162,7 @@ public class ItunesAdapter extends ArrayAdapter { /** * View holder object for the GridView */ - class PodcastViewHolder { + static class PodcastViewHolder { /** * ImageView holding the Podcast image diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java index 52a38ccb9..5d29f4bde 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadsFragment.java @@ -78,7 +78,7 @@ public class DownloadsFragment extends Fragment { viewPager.setCurrentItem(lastPosition); } - public class DownloadsPagerAdapter extends FragmentPagerAdapter { + public static class DownloadsPagerAdapter extends FragmentPagerAdapter { Resources resources; -- cgit v1.2.3 From 404f241891891b71adcf2364446302886b5d3252 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Sat, 20 Jan 2018 18:27:44 -0800 Subject: Make some static fields final Adding final prohibits modification and allows initialization of primitive and String fields at compile time instead of runtime in clinit: https://developer.android.com/training/articles/perf-tips.html#UseFinal Found via error-prone. --- .../java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java | 2 +- app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java | 2 +- .../java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'app/src/main/java/de') diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java index 3b1427f1b..d85c2fe8f 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java @@ -77,7 +77,7 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem private static final int POS_CHAPTERS = 2; private static final int NUM_CONTENT_FRAGMENTS = 3; - final String TAG = "MediaplayerInfoActivity"; + final static String TAG = "MediaplayerInfoActivity"; private static final String PREFS = "AudioPlayerActivityPreferences"; private static final String PREF_KEY_SELECTED_FRAGMENT_POSITION = "selectedFragmentPosition"; diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java index e271b5eed..679aca989 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java @@ -29,7 +29,7 @@ import de.danoeh.antennapod.core.storage.DownloadRequestException; /** Displays a list of DownloadStatus entries. */ public class DownloadLogAdapter extends BaseAdapter { - private final String TAG = "DownloadLogAdapter"; + private static final String TAG = "DownloadLogAdapter"; private Context context; diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java index ac073141d..3d577553c 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java @@ -32,7 +32,7 @@ import de.danoeh.antennapod.core.util.LongList; public class EpisodesApplyActionFragment extends Fragment { - public String TAG = "EpisodeActionFragment"; + public static final String TAG = "EpisodeActionFragment"; public static final int ACTION_QUEUE = 1; public static final int ACTION_MARK_PLAYED = 2; -- cgit v1.2.3