1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-12-18 06:37:47 +01:00

Add About screen

This commit is contained in:
vanous 2020-07-11 17:04:29 +02:00
parent 3695a68e2f
commit c1a8fb502c
6 changed files with 181 additions and 0 deletions

View File

@ -380,6 +380,13 @@
android:parentActivityName=".activities.ControlCenterv2" android:parentActivityName=".activities.ControlCenterv2"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" /> android:windowSoftInputMode="stateHidden" />
<activity
android:name=".activities.AboutActivity"
android:label="@string/about_activity_title"
android:parentActivityName=".activities.ControlCenterv2"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" />
<activity <activity
android:name=".activities.DbManagementActivity" android:name=".activities.DbManagementActivity"
android:label="@string/title_activity_db_management" android:label="@string/title_activity_db_management"

View File

@ -0,0 +1,58 @@
/* Copyright (C) 2015-2020 abettenburg, Andreas Shimokawa, Carsten Pfeiffer,
Daniele Gobbetti, Lem Dulfo
This file is part of Gadgetbridge.
Gadgetbridge is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gadgetbridge is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
package nodomain.freeyourgadget.gadgetbridge.activities;
import android.os.Bundle;
import android.text.method.LinkMovementMethod;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
import androidx.appcompat.widget.SearchView;
import androidx.core.app.NavUtils;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import nodomain.freeyourgadget.gadgetbridge.R;
public class AboutActivity extends AbstractGBActivity {
private static final Logger LOG = LoggerFactory.getLogger(AboutActivity.class);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
TextView link1 = (TextView) findViewById(R.id.about4);
link1.setMovementMethod(LinkMovementMethod.getInstance());
TextView link2 = (TextView) findViewById(R.id.about5);
link2.setMovementMethod(LinkMovementMethod.getInstance());
TextView link3 = (TextView) findViewById(R.id.about6);
link3.setMovementMethod(LinkMovementMethod.getInstance());
}
}

View File

@ -297,6 +297,10 @@ public class ControlCenterv2 extends AppCompatActivity
GB.toast(getBaseContext(), "Error showing Changelog", Toast.LENGTH_LONG, GB.ERROR); GB.toast(getBaseContext(), "Error showing Changelog", Toast.LENGTH_LONG, GB.ERROR);
} }
return true; return true;
case R.id.about:
Intent aboutIntent = new Intent(this, AboutActivity.class);
startActivity(aboutIntent);
return true;
} }
return true; return true;

View File

@ -0,0 +1,94 @@
<RelativeLayout 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"
android:paddingLeft="@dimen/activity_horizontal_margin"
tools:context="nodomain.freeyourgadget.gadgetbridge.activities.AboutActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/about1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Gadgetbridge"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@color/accent" />
<TextView
android:id="@+id/about2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about_description" />
<TextView
android:id="@+id/about3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Links"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@color/accent" />
<TextView
android:id="@+id/about4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/homepage_url" />
<TextView
android:id="@+id/about5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/codeberg_url" />
<TextView
android:id="@+id/about6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/fdroid_url" />
<TextView
android:id="@+id/about7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about_contributors"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textColor="@color/accent" />
<TextView
android:id="@+id/about8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about_core_team_title"
android:textColor="@color/accent" />
<TextView
android:id="@+id/about9"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about_core_team_members" />
<TextView
android:id="@+id/about10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about_additional_device_support"
android:textColor="@color/accent" />
<TextView
android:id="@+id/about11"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/about_additional_contributors" />
</LinearLayout>
</ScrollView>
</RelativeLayout>

View File

@ -36,5 +36,10 @@
android:id="@+id/external_changelog" android:id="@+id/external_changelog"
android:title="@string/changelog_full_title" android:title="@string/changelog_full_title"
android:icon="@drawable/ic_history_black" /> android:icon="@drawable/ic_history_black" />
<item
android:id="@+id/about"
android:title="@string/about_title"
android:icon="@drawable/gadgetbridge_img" />
</group> </group>
</menu> </menu>

View File

@ -865,6 +865,19 @@
<string name="pref_qhybrid_title_widget_draw_circles">Draw widget circles</string> <string name="pref_qhybrid_title_widget_draw_circles">Draw widget circles</string>
<string name="pref_qhybrid_save_raw_activity_files">Save raw activity files</string> <string name="pref_qhybrid_save_raw_activity_files">Save raw activity files</string>
<string name="hr_widget_last_notification">Last notification</string> <string name="hr_widget_last_notification">Last notification</string>
<string name="homepage_url" translatable="false">Homepage: <a href="https://gadgetbridge.org/">https://gadgetbridge.org/</a></string>
<string name="codeberg_url" translatable="false">Code: <a href="https://codeberg.org/Freeyourgadget/Gadgetbridge">https://codeberg.org/Freeyourgadget/Gadgetbridge</a></string>
<string name="fdroid_url" translatable="false">F-Droid: <a href="https://f-droid.org/packages/nodomain.freeyourgadget.gadgetbridge/">https://f-droid.org/packages/nodomain.freeyourgadget.gadgetbridge/</a></string>
<string name="about_title">About</string>
<string name="about_activity_title">About Gadgetbridge</string>
<string name="about_description">A free and cloudless replacement for your gadget vendors\' closed source Android applications.</string>
<string name="about_core_team_title">Core Team (in order of first code contribution)</string>
<string name="about_contributors">Contributors</string>
<string name="about_core_team_members" translatable="false"> Andreas Shimokawa\n Carsten Pfeiffer\n Daniele Gobbetti</string>
<string name="about_additional_device_support">Additional device support</string>
<string name="about_additional_contributors" translatable="false"> João Paulo Barraca (HPlus)\n Vitaly Svyastyn (NO.1 F1)\n Sami Alaoui (Teclast H30)\n “ladbsoft” (XWatch)\n Sebastian Kranz (ZeTime)\n Vadim Kaushan (ID115)\n “maxirnilian” (Lenovo Watch 9)\n “ksiwczynski”, “mkusnierz”, “mamutcho” (Lenovo Watch X Plus)\n Andreas Böhler (Casio GB-6900B)\n Jean-François Greffier (Mi Scale 2)\n Johannes Schmitt (BFH-16)\n Lukas Schwichtenberg (Makibes HR3)\n Daniel Dakhno (Fossil Q Hybrid, Fossil Hybrid HR)\n Gordon Williams (Bangle.js)\n Pavel Elagin (JYou Y5)\n Taavi Eomäe (iTag)</string>
<plurals name="widget_alarm_target_hours"> <plurals name="widget_alarm_target_hours">
<item quantity="one">%d hour</item> <item quantity="one">%d hour</item>
<item quantity="two">%d hours</item> <item quantity="two">%d hours</item>