Add crash activity

pull/102/head
FongMi 4 years ago
parent e3a11d8bc6
commit 2b3d00c8a9
  1. 1
      app/build.gradle
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
  3. 5
      app/src/main/AndroidManifest.xml
  4. 10
      app/src/main/java/com/fongmi/android/tv/App.java
  5. 35
      app/src/main/java/com/fongmi/android/tv/ui/activity/CrashActivity.java
  6. 41
      app/src/main/res/layout/activity_crash.xml
  7. 7
      app/src/main/res/values-zh-rCN/strings.xml
  8. 7
      app/src/main/res/values-zh-rTW/strings.xml
  9. 7
      app/src/main/res/values/strings.xml

@ -55,6 +55,7 @@ dependencies {
implementation 'androidx.preference:preference:1.2.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.room:room-runtime:2.4.3'
implementation 'cat.ereza:customactivityoncrash:2.4.0'
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
implementation 'com.github.bassaer:materialdesigncolors:1.0.0'
implementation 'com.github.bumptech.glide:glide:4.13.2'

@ -15,12 +15,12 @@ import androidx.core.content.ContextCompat;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.impl.SettingCallback;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.databinding.ActivitySettingBinding;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.impl.SettingCallback;
import com.fongmi.android.tv.net.Callback;
import com.fongmi.android.tv.ui.custom.dialog.ConfigDialog;
import com.fongmi.android.tv.ui.custom.dialog.HistoryDialog;

@ -36,5 +36,10 @@
android:resource="@xml/file_paths" />
</provider>
<activity
android:name=".ui.activity.CrashActivity"
android:process=":error_activity" />
</application>
</manifest>

@ -2,6 +2,10 @@ package com.fongmi.android.tv;
import android.app.Application;
import com.fongmi.android.tv.ui.activity.CrashActivity;
import cat.ereza.customactivityoncrash.config.CaocConfig;
public class App extends Application {
private static App instance;
@ -13,4 +17,10 @@ public class App extends Application {
public static App get() {
return instance;
}
@Override
public void onCreate() {
super.onCreate();
CaocConfig.Builder.create().backgroundMode(CaocConfig.BACKGROUND_MODE_SILENT).errorActivity(CrashActivity.class).apply();
}
}

@ -0,0 +1,35 @@
package com.fongmi.android.tv.ui.activity;
import androidx.appcompat.app.AlertDialog;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.databinding.ActivityCrashBinding;
import java.util.Objects;
import cat.ereza.customactivityoncrash.CustomActivityOnCrash;
public class CrashActivity extends BaseActivity {
private ActivityCrashBinding mBinding;
@Override
protected ViewBinding getBinding() {
return mBinding = ActivityCrashBinding.inflate(getLayoutInflater());
}
@Override
protected void initEvent() {
mBinding.details.setOnClickListener(v -> showError());
mBinding.restart.setOnClickListener(v -> CustomActivityOnCrash.restartApplication(this, Objects.requireNonNull(CustomActivityOnCrash.getConfigFromIntent(getIntent()))));
}
private void showError() {
new AlertDialog.Builder(this)
.setTitle(R.string.crash_details_title)
.setMessage(CustomActivityOnCrash.getAllErrorDetailsFromIntent(this, getIntent()))
.setPositiveButton(R.string.crash_details_close, null)
.show();
}
}

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/customactivityoncrash_error_image" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center"
android:lineSpacingExtra="4dp"
android:text="@string/crash_info"
android:textColor="@color/grey_200"
android:textSize="18sp"
android:textStyle="bold" />
<Button
android:id="@+id/restart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:backgroundTint="@color/blue_500"
android:text="@string/crash_restart" />
<Button
android:id="@+id/details"
style="?borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/crash_details"
android:textColor="@color/grey_200" />
</LinearLayout>

@ -54,6 +54,13 @@
<string name="error_episode">暂无播放数据</string>
<string name="error_empty">找不到数据</string>
<!-- Crash -->
<string name="crash_info">发生意外错误\n抱歉给您带来不便</string>
<string name="crash_restart">重新启动</string>
<string name="crash_details">错误信息</string>
<string name="crash_details_title">错误信息</string>
<string name="crash_details_close">关闭</string>
<!-- UNIT -->
<string name="second"><xliff:g name="name">%s</xliff:g></string>

@ -54,6 +54,13 @@
<string name="error_episode">暫無播放資料</string>
<string name="error_empty">找不到資料</string>
<!-- Crash -->
<string name="crash_info">發生意外錯誤\n抱歉給您帶來不便</string>
<string name="crash_restart">重新啟動</string>
<string name="crash_details">錯誤訊息</string>
<string name="crash_details_title">錯誤訊息</string>
<string name="crash_details_close">關閉</string>
<!-- UNIT -->
<string name="second"><xliff:g name="name">%s</xliff:g></string>

@ -54,6 +54,13 @@
<string name="error_episode">No episode data</string>
<string name="error_empty">Not found</string>
<!-- Crash -->
<string name="crash_info">An unexpected error occurred.\nSorry for the inconvenience.</string>
<string name="crash_restart">Restart app</string>
<string name="crash_details">Error details</string>
<string name="crash_details_title">Error details</string>
<string name="crash_details_close">Close</string>
<!-- UNIT -->
<string name="second"><xliff:g name="name">%s</xliff:g> s</string>

Loading…
Cancel
Save