Remove unused code
* Remove Giga crash handler * Some refactoring * Remove unused download dialog * Remove duplicated intent creation
This commit is contained in:
parent
11541310d6
commit
bab3dd417e
|
@ -1,60 +1,28 @@
|
||||||
package org.schabi.newpipe.download;
|
package org.schabi.newpipe.download;
|
||||||
|
|
||||||
import android.annotation.TargetApi;
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.FragmentTransaction;
|
import android.app.FragmentTransaction;
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
|
||||||
import android.support.v7.app.ActionBar;
|
import android.support.v7.app.ActionBar;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
import android.widget.AdapterView;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.RadioButton;
|
|
||||||
import android.widget.SeekBar;
|
|
||||||
import android.widget.TextView;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.settings.NewPipeSettings;
|
|
||||||
import org.schabi.newpipe.settings.SettingsActivity;
|
import org.schabi.newpipe.settings.SettingsActivity;
|
||||||
import org.schabi.newpipe.util.ThemeHelper;
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
import us.shandian.giga.service.DownloadManagerService;
|
import us.shandian.giga.service.DownloadManagerService;
|
||||||
import us.shandian.giga.ui.fragment.AllMissionsFragment;
|
import us.shandian.giga.ui.fragment.AllMissionsFragment;
|
||||||
import us.shandian.giga.ui.fragment.MissionsFragment;
|
import us.shandian.giga.ui.fragment.MissionsFragment;
|
||||||
import us.shandian.giga.util.CrashHandler;
|
|
||||||
|
|
||||||
public class DownloadActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
|
public class DownloadActivity extends AppCompatActivity {
|
||||||
|
|
||||||
public static final String INTENT_DOWNLOAD = "us.shandian.giga.intent.DOWNLOAD";
|
|
||||||
|
|
||||||
public static final String INTENT_LIST = "us.shandian.giga.intent.LIST";
|
|
||||||
public static final String THREADS = "threads";
|
|
||||||
private static final String TAG = DownloadActivity.class.toString();
|
|
||||||
private MissionsFragment mFragment;
|
|
||||||
|
|
||||||
|
|
||||||
private String mPendingUrl;
|
|
||||||
private SharedPreferences mPrefs;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@TargetApi(21)
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
CrashHandler.init(this);
|
|
||||||
CrashHandler.register();
|
|
||||||
|
|
||||||
// Service
|
// Service
|
||||||
Intent i = new Intent();
|
Intent i = new Intent();
|
||||||
i.setClass(this, DownloadManagerService.class);
|
i.setClass(this, DownloadManagerService.class);
|
||||||
|
@ -74,8 +42,6 @@ public class DownloadActivity extends AppCompatActivity implements AdapterView.O
|
||||||
actionBar.setDisplayShowTitleEnabled(true);
|
actionBar.setDisplayShowTitleEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
|
|
||||||
|
|
||||||
// Fragment
|
// Fragment
|
||||||
getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -84,140 +50,17 @@ public class DownloadActivity extends AppCompatActivity implements AdapterView.O
|
||||||
getWindow().getDecorView().getViewTreeObserver().removeGlobalOnLayoutListener(this);
|
getWindow().getDecorView().getViewTreeObserver().removeGlobalOnLayoutListener(this);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Intent
|
|
||||||
if (getIntent().getAction() != null && getIntent().getAction().equals(INTENT_DOWNLOAD)) {
|
|
||||||
mPendingUrl = getIntent().getData().toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onNewIntent(Intent intent) {
|
|
||||||
super.onNewIntent(intent);
|
|
||||||
|
|
||||||
if (intent.getAction().equals(INTENT_DOWNLOAD)) {
|
|
||||||
mPendingUrl = intent.getData().toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
|
|
||||||
if (mPendingUrl != null) {
|
|
||||||
showUrlDialog();
|
|
||||||
mPendingUrl = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFragments() {
|
private void updateFragments() {
|
||||||
|
|
||||||
mFragment = new AllMissionsFragment();
|
MissionsFragment fragment = new AllMissionsFragment();
|
||||||
|
|
||||||
getFragmentManager().beginTransaction()
|
getFragmentManager().beginTransaction()
|
||||||
.replace(R.id.frame, mFragment)
|
.replace(R.id.frame, fragment)
|
||||||
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
|
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
|
||||||
.commit();
|
.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showUrlDialog() {
|
|
||||||
// Create the view
|
|
||||||
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
|
||||||
View v = inflater.inflate(R.layout.dialog_url, null);
|
|
||||||
final EditText name = (EditText) v.findViewById(R.id.file_name);
|
|
||||||
final TextView tCount = (TextView) v.findViewById(R.id.threads_count);
|
|
||||||
final SeekBar threads = (SeekBar) v.findViewById(R.id.threads);
|
|
||||||
final Toolbar toolbar = (Toolbar) v.findViewById(R.id.toolbar);
|
|
||||||
final RadioButton audioButton = (RadioButton) v.findViewById(R.id.audio_button);
|
|
||||||
|
|
||||||
|
|
||||||
threads.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onProgressChanged(SeekBar seekbar, int progress, boolean fromUser) {
|
|
||||||
tCount.setText(String.valueOf(progress + 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStartTrackingTouch(SeekBar p1) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStopTrackingTouch(SeekBar p1) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
int def = mPrefs.getInt(THREADS, 4);
|
|
||||||
threads.setProgress(def - 1);
|
|
||||||
tCount.setText(String.valueOf(def));
|
|
||||||
|
|
||||||
name.setText(getIntent().getStringExtra("fileName"));
|
|
||||||
|
|
||||||
toolbar.setTitle(R.string.add);
|
|
||||||
toolbar.setNavigationIcon(ThemeHelper.isLightThemeSelected(this) ? R.drawable.ic_arrow_back_black_24dp : R.drawable.ic_arrow_back_white_24dp);
|
|
||||||
toolbar.inflateMenu(R.menu.dialog_url);
|
|
||||||
|
|
||||||
// Show the dialog
|
|
||||||
final AlertDialog dialog = new AlertDialog.Builder(this)
|
|
||||||
.setCancelable(true)
|
|
||||||
.setView(v)
|
|
||||||
.create();
|
|
||||||
|
|
||||||
dialog.show();
|
|
||||||
|
|
||||||
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
|
|
||||||
@Override
|
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
|
||||||
if (item.getItemId() == R.id.okay) {
|
|
||||||
|
|
||||||
String location;
|
|
||||||
if (audioButton.isChecked()) {
|
|
||||||
location = NewPipeSettings.getAudioDownloadPath(DownloadActivity.this);
|
|
||||||
} else {
|
|
||||||
location = NewPipeSettings.getVideoDownloadPath(DownloadActivity.this);
|
|
||||||
}
|
|
||||||
|
|
||||||
String fName = name.getText().toString().trim();
|
|
||||||
|
|
||||||
File f = new File(location, fName);
|
|
||||||
if (f.exists()) {
|
|
||||||
Toast.makeText(DownloadActivity.this, R.string.msg_exists, Toast.LENGTH_SHORT).show();
|
|
||||||
} else {
|
|
||||||
DownloadManagerService.startMission(
|
|
||||||
DownloadActivity.this,
|
|
||||||
getIntent().getData().toString(), location, fName,
|
|
||||||
audioButton.isChecked(), threads.getProgress() + 1);
|
|
||||||
mFragment.notifyChange();
|
|
||||||
|
|
||||||
mPrefs.edit().putInt(THREADS, threads.getProgress() + 1).apply();
|
|
||||||
mPendingUrl = null;
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
super.onCreateOptionsMenu(menu);
|
super.onCreateOptionsMenu(menu);
|
||||||
MenuInflater inflater = getMenuInflater();
|
MenuInflater inflater = getMenuInflater();
|
||||||
|
@ -229,9 +72,7 @@ public class DownloadActivity extends AppCompatActivity implements AdapterView.O
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
int id = item.getItemId();
|
switch (item.getItemId()) {
|
||||||
|
|
||||||
switch (id) {
|
|
||||||
case android.R.id.home: {
|
case android.R.id.home: {
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -89,30 +89,22 @@ public class DownloadManagerService extends Service {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Intent i = new Intent();
|
Intent openDownloadListIntent = new Intent(this, DownloadActivity.class)
|
||||||
i.setAction(Intent.ACTION_MAIN);
|
.setAction(Intent.ACTION_MAIN);
|
||||||
i.setClass(this, DownloadActivity.class);
|
|
||||||
|
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
|
||||||
|
openDownloadListIntent,
|
||||||
|
PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
|
|
||||||
Drawable icon = ContextCompat.getDrawable(this, R.mipmap.ic_launcher);
|
Drawable icon = ContextCompat.getDrawable(this, R.mipmap.ic_launcher);
|
||||||
|
|
||||||
Builder builder = new Builder(this)
|
Builder builder = new Builder(this)
|
||||||
.setContentIntent(PendingIntent.getActivity(this, 0, i, 0))
|
.setContentIntent(pendingIntent)
|
||||||
.setSmallIcon(android.R.drawable.stat_sys_download)
|
.setSmallIcon(android.R.drawable.stat_sys_download)
|
||||||
.setLargeIcon(((BitmapDrawable) icon).getBitmap())
|
.setLargeIcon(((BitmapDrawable) icon).getBitmap())
|
||||||
.setContentTitle(getString(R.string.msg_running))
|
.setContentTitle(getString(R.string.msg_running))
|
||||||
.setContentText(getString(R.string.msg_running_detail));
|
.setContentText(getString(R.string.msg_running_detail));
|
||||||
|
|
||||||
PendingIntent pendingIntent =
|
|
||||||
PendingIntent.getActivity(
|
|
||||||
this,
|
|
||||||
0,
|
|
||||||
new Intent(this, DownloadActivity.class)
|
|
||||||
.setAction(DownloadActivity.INTENT_LIST),
|
|
||||||
PendingIntent.FLAG_UPDATE_CURRENT
|
|
||||||
);
|
|
||||||
|
|
||||||
builder.setContentIntent(pendingIntent);
|
|
||||||
|
|
||||||
mNotification = builder.build();
|
mNotification = builder.build();
|
||||||
|
|
||||||
HandlerThread thread = new HandlerThread("ServiceMessenger");
|
HandlerThread thread = new HandlerThread("ServiceMessenger");
|
||||||
|
|
|
@ -1,84 +0,0 @@
|
||||||
package us.shandian.giga.util;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.pm.PackageInfo;
|
|
||||||
import android.os.Build;
|
|
||||||
import android.os.Environment;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
|
|
||||||
//todo: replace this by using the internal crash handler of newpipe
|
|
||||||
public class CrashHandler implements Thread.UncaughtExceptionHandler {
|
|
||||||
public static final String CRASH_DIR = Environment.getExternalStorageDirectory().getPath() + "/GigaCrash/";
|
|
||||||
public static final String CRASH_LOG = CRASH_DIR + "last_crash.log";
|
|
||||||
public static final String CRASH_TAG = CRASH_DIR + ".crashed";
|
|
||||||
|
|
||||||
private static String ANDROID = Build.VERSION.RELEASE;
|
|
||||||
private static String MODEL = Build.MODEL;
|
|
||||||
private static String MANUFACTURER = Build.MANUFACTURER;
|
|
||||||
|
|
||||||
public static String VERSION = "Unknown";
|
|
||||||
|
|
||||||
private Thread.UncaughtExceptionHandler mPrevious;
|
|
||||||
|
|
||||||
public static void init(Context context) {
|
|
||||||
try {
|
|
||||||
PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
|
|
||||||
VERSION = info.versionName + info.versionCode;
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void register() {
|
|
||||||
new CrashHandler();
|
|
||||||
}
|
|
||||||
|
|
||||||
private CrashHandler() {
|
|
||||||
mPrevious = Thread.currentThread().getUncaughtExceptionHandler();
|
|
||||||
Thread.currentThread().setUncaughtExceptionHandler(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uncaughtException(Thread thread, Throwable throwable) {
|
|
||||||
File f = new File(CRASH_LOG);
|
|
||||||
if (f.exists()) {
|
|
||||||
f.delete();
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
new File(CRASH_DIR).mkdirs();
|
|
||||||
f.createNewFile();
|
|
||||||
} catch (Exception e) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PrintWriter p;
|
|
||||||
try {
|
|
||||||
p = new PrintWriter(f);
|
|
||||||
} catch (Exception e) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
p.write("Android Version: " + ANDROID + "\n");
|
|
||||||
p.write("Device Model: " + MODEL + "\n");
|
|
||||||
p.write("Device Manufacturer: " + MANUFACTURER + "\n");
|
|
||||||
p.write("App Version: " + VERSION + "\n");
|
|
||||||
p.write("*********************\n");
|
|
||||||
throwable.printStackTrace(p);
|
|
||||||
|
|
||||||
p.close();
|
|
||||||
|
|
||||||
try {
|
|
||||||
new File(CRASH_TAG).createNewFile();
|
|
||||||
} catch (Exception e) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mPrevious != null) {
|
|
||||||
mPrevious.uncaughtException(thread, throwable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue