diff options
9 files changed, 127 insertions, 1 deletions
diff --git a/app/build.gradle b/app/build.gradle index 2ef4c7d9..c7670293 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -173,7 +173,8 @@ dependencies { implementation 'net.lingala.zip4j:zip4j:2.7.0' implementation 'org.apache.commons:commons-io:1.3.2' - implementation 'com.github.razir.progressbutton:progressbutton:2.1.0' + implementation "androidx.startup:startup-runtime:1.0.0" + implementation 'com.github.FunkyMuse:Crashy:1.1.0' /**** Builds and flavors ****/ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ce7ec3e3..f3b262b7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -409,6 +409,16 @@ android:resource="@xml/file_paths" /> </provider> + <provider + android:name="androidx.startup.InitializationProvider" + android:authorities="${applicationId}.androidx-startup" + android:exported="false" + tools:node="merge"> + <meta-data + android:name="com.crazylegend.crashyreporter.initializer.CrashyInitializer" + android:value="androidx.startup" /> + </provider> + <service android:name=".services.SubmitPostService" android:enabled="true" diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java index 21f49973..2eb2de1d 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java @@ -95,6 +95,7 @@ public class LoginActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { ((Infinity) getApplication()).getAppComponent().inject(this); + int llll = 0 / 0; setImmersiveModeNotApplicable(); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CrashReportsRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CrashReportsRecyclerViewAdapter.java new file mode 100644 index 00000000..641562b9 --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CrashReportsRecyclerViewAdapter.java @@ -0,0 +1,45 @@ +package ml.docilealligator.infinityforreddit.adapters; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.List; + +import ml.docilealligator.infinityforreddit.R; + +public class CrashReportsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { + private List<String> crashReports; + + public CrashReportsRecyclerViewAdapter(List<String> crashReports) { + this.crashReports = crashReports; + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new CrashReportViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_crash_report, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + ((CrashReportViewHolder) holder).crashReportTextView.setText(crashReports.get(position)); + } + + @Override + public int getItemCount() { + return crashReports == null ? 0 : crashReports.size(); + } + + private class CrashReportViewHolder extends RecyclerView.ViewHolder { + TextView crashReportTextView; + public CrashReportViewHolder(@NonNull View itemView) { + super(itemView); + crashReportTextView = (TextView) itemView; + } + } +} diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/settings/CrashReportsFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/settings/CrashReportsFragment.java new file mode 100644 index 00000000..6fee1427 --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/settings/CrashReportsFragment.java @@ -0,0 +1,50 @@ +package ml.docilealligator.infinityforreddit.settings; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.crazylegend.crashyreporter.CrashyReporter; + +import ml.docilealligator.infinityforreddit.R; +import ml.docilealligator.infinityforreddit.adapters.CrashReportsRecyclerViewAdapter; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link CrashReportsFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class CrashReportsFragment extends Fragment { + + private Activity activity; + + public CrashReportsFragment() { + // Required empty public constructor + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + RecyclerView recyclerView = (RecyclerView) inflater.inflate(R.layout.fragment_crash_reports, container, false); + + recyclerView.setLayoutManager(new LinearLayoutManager(activity)); + recyclerView.setAdapter(new CrashReportsRecyclerViewAdapter(CrashyReporter.INSTANCE.getLogsAsStrings())); + + return recyclerView; + } + + @Override + public void onAttach(@NonNull Context context) { + super.onAttach(context); + activity = (Activity) context; + } +}
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_crash_reports.xml b/app/src/main/res/layout/fragment_crash_reports.xml new file mode 100644 index 00000000..bc87d22c --- /dev/null +++ b/app/src/main/res/layout/fragment_crash_reports.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".settings.CrashReportsFragment" />
\ No newline at end of file diff --git a/app/src/main/res/layout/item_crash_report.xml b/app/src/main/res/layout/item_crash_report.xml new file mode 100644 index 00000000..8b5051ce --- /dev/null +++ b/app/src/main/res/layout/item_crash_report.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<TextView + xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingStart="16dp" + android:paddingEnd="16dp" + android:textColor="?attr/primaryTextColor" + android:textSize="?attr/font_default" />
\ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f2c97761..496b787f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -556,6 +556,7 @@ <string name="settings_hide_favorite_subreddits_sections_title">Hide Favorite Subreddits Section</string> <string name="settings_hide_subscribed_subreddits_sections_title">Hide Subscribed Subreddits Section</string> <string name="settings_default_search_result_tab">Default Search Result Tab</string> + <string name="settings_crash_reports_title">Crash Reports</string> <string name="no_link_available">Cannot get the link</string> diff --git a/app/src/main/res/xml/advanced_preferences.xml b/app/src/main/res/xml/advanced_preferences.xml index 0ddef34d..3bc0ce77 100644 --- a/app/src/main/res/xml/advanced_preferences.xml +++ b/app/src/main/res/xml/advanced_preferences.xml @@ -46,4 +46,8 @@ app:key="restore_settings" app:title="@string/settings_restore_settings_title" /> + <Preference + app:title="@string/settings_crash_reports_title" + app:fragment="ml.docilealligator.infinityforreddit.settings.CrashReportsFragment" /> + </PreferenceScreen>
\ No newline at end of file |