Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiedermann IT-Dienstleistungen <info@niedermann.it>2018-11-10 23:45:50 +0300
committerNiedermann IT-Dienstleistungen <info@niedermann.it>2018-11-10 23:45:50 +0300
commitfd0f4f89eefb469d348b54dddd067caae8f80b5f (patch)
treef944c5d7baf73f3b44356facbfa12a79fe1885fb
parent486cbf7d2c5e53781bca88c06875ac515bc3a9a2 (diff)
Add basic about activity
-rw-r--r--app/src/main/AndroidManifest.xml13
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/SupportUtil.java38
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/AboutActivity.java87
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java20
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentContributingTab.java33
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentCreditsTab.java34
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentLicenseTab.java38
-rw-r--r--app/src/main/res/drawable/ic_info_outline_black_24dp.xml5
-rw-r--r--app/src/main/res/drawable/ic_view_column_black_24dp.xml5
-rw-r--r--app/src/main/res/layout/activity_about.xml17
-rw-r--r--app/src/main/res/layout/fragment_about_contribution_tab.xml57
-rw-r--r--app/src/main/res/layout/fragment_about_credits_tab.xml99
-rw-r--r--app/src/main/res/layout/fragment_about_license_tab.xml49
-rw-r--r--app/src/main/res/values/strings.xml35
-rw-r--r--app/src/main/res/values/styles.xml2
-rw-r--r--app/src/main/res/xml/searchable.xml4
16 files changed, 531 insertions, 5 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f2b93179..a5f73b821 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -22,8 +22,21 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
+
+ <meta-data
+ android:name="android.app.searchable"
+ android:resource="@xml/searchable" />
+ <meta-data
+ android:name="android.app.default_searchable"
+ android:value="it.niedermann.nextcloud.deck.ui.MainActivity" />
</activity>
+
+ <activity
+ android:name="it.niedermann.nextcloud.deck.ui.AboutActivity"
+ android:label="@string/about"
+ android:parentActivityName="it.niedermann.nextcloud.deck.ui.MainActivity" />
+
</application>
</manifest> \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/SupportUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/SupportUtil.java
new file mode 100644
index 000000000..e0c0a8b52
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/SupportUtil.java
@@ -0,0 +1,38 @@
+package it.niedermann.nextcloud.deck;
+
+import android.os.Build;
+import android.text.Html;
+import android.text.Spanned;
+import android.text.method.LinkMovementMethod;
+import android.widget.TextView;
+
+public class SupportUtil {
+
+ /**
+ * Creates a {@link Spanned} from a HTML string on all SDK versions.
+ *
+ * @param source Source string with HTML markup
+ * @return Spannable for using in a {@link TextView}
+ * @see Html#fromHtml(String)
+ * @see Html#fromHtml(String, int)
+ */
+ public static Spanned fromHtml(String source) {
+ if (Build.VERSION.SDK_INT >= 24) {
+ return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY);
+ } else {
+ return Html.fromHtml(source);
+ }
+ }
+
+ /**
+ * Fills a {@link TextView} with HTML content and activates links in that {@link TextView}.
+ *
+ * @param view The {@link TextView} which should be filled.
+ * @param stringId The string resource containing HTML tags (escaped by <code>&lt;</code>)
+ * @param formatArgs Arguments for the string resource.
+ */
+ public static void setHtml(TextView view, int stringId, Object... formatArgs) {
+ view.setText(SupportUtil.fromHtml(view.getResources().getString(stringId, formatArgs)));
+ view.setMovementMethod(LinkMovementMethod.getInstance());
+ }
+}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/AboutActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/AboutActivity.java
new file mode 100644
index 000000000..3a47cd78c
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/AboutActivity.java
@@ -0,0 +1,87 @@
+package it.niedermann.nextcloud.deck.ui;
+
+import android.os.Bundle;
+import android.support.design.widget.TabLayout;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.support.v7.app.AppCompatActivity;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.ui.about.AboutFragmentContributingTab;
+import it.niedermann.nextcloud.deck.ui.about.AboutFragmentCreditsTab;
+import it.niedermann.nextcloud.deck.ui.about.AboutFragmentLicenseTab;
+
+public class AboutActivity extends AppCompatActivity {
+
+ @BindView(R.id.pager)
+ ViewPager mViewPager;
+ @BindView(R.id.tabs)
+ TabLayout mTabLayout;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_about);
+ ButterKnife.bind(this);
+
+ mViewPager.setAdapter(new TabsPagerAdapter(getSupportFragmentManager()));
+ mTabLayout.setupWithViewPager(mViewPager);
+ }
+
+ private class TabsPagerAdapter extends FragmentPagerAdapter {
+ private final int PAGE_COUNT = 3;
+
+ public TabsPagerAdapter(FragmentManager fragmentManager) {
+ super(fragmentManager);
+ }
+
+ @Override
+ public int getCount() {
+ return PAGE_COUNT;
+ }
+
+ /**
+ * return the right fragment for the given position
+ */
+ @Override
+ public Fragment getItem(int position) {
+ switch (position) {
+ case 0:
+ return new AboutFragmentCreditsTab();
+
+ case 1:
+ return new AboutFragmentContributingTab();
+
+ case 2:
+ return new AboutFragmentLicenseTab();
+
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * generate title based on given position
+ */
+ @Override
+ public CharSequence getPageTitle(int position) {
+ switch (position) {
+ case 0:
+ return getString(R.string.about_credits_tab_title);
+
+ case 1:
+ return getString(R.string.about_contribution_tab_title);
+
+ case 2:
+ return getString(R.string.about_license_tab_title);
+
+ default:
+ return null;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
index 4a27905a2..d737590e4 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java
@@ -1,5 +1,6 @@
package it.niedermann.nextcloud.deck.ui;
+import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
@@ -37,6 +38,9 @@ import it.niedermann.nextcloud.deck.ui.stack.StackFragment;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
+ private static final int MENU_ID_ABOUT = -1;
+ private static final int ACTIVITY_ABOUT = 1;
+
@BindView(R.id.toolbar) Toolbar toolbar;
@BindView(R.id.fab) FloatingActionButton fab;
@BindView(R.id.drawer_layout) DrawerLayout drawer;
@@ -80,9 +84,10 @@ public class MainActivity extends AppCompatActivity
boardsList = boards;
int index = 0;
for(Board board: boardsList) {
- menu.add(Menu.NONE, index++, Menu.NONE, board.getTitle());
+ menu.add(Menu.NONE, index++, Menu.NONE, board.getTitle()).setIcon(R.drawable.ic_view_column_black_24dp);
}
- displayStacksForIndex(0);
+ menu.add(Menu.NONE, MENU_ID_ABOUT, Menu.NONE, getString(R.string.about)).setIcon(R.drawable.ic_info_outline_black_24dp);
+ displayStacksForIndex(0, 0);
}
@Override
@@ -106,7 +111,6 @@ public class MainActivity extends AppCompatActivity
* @param index of boardsList
*/
private void displayStacksForIndex(int index, long accountId) {
- Log.v("Deck", "displayStacksForIndex(" + index + ")");
Board selectedBoard = boardsList.get(index);
if(toolbar != null) {
toolbar.setTitle(selectedBoard.getTitle());
@@ -157,7 +161,15 @@ public class MainActivity extends AppCompatActivity
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
- displayStacksForIndex(item.getItemId(), 0); // TODO: <- accountID!
+ switch(item.getItemId()) {
+ case MENU_ID_ABOUT:
+ Log.v("Deck", "" + MENU_ID_ABOUT);
+ Intent aboutIntent = new Intent(getApplicationContext(), AboutActivity.class);
+ startActivityForResult(aboutIntent, ACTIVITY_ABOUT);
+ break;
+ default:
+ displayStacksForIndex(item.getItemId(), 0); // TODO: <- accountID!
+ }
drawer.closeDrawer(GravityCompat.START);
return true;
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentContributingTab.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentContributingTab.java
new file mode 100644
index 000000000..7b4e195a0
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentContributingTab.java
@@ -0,0 +1,33 @@
+package it.niedermann.nextcloud.deck.ui.about;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.SupportUtil;
+
+public class AboutFragmentContributingTab extends Fragment {
+
+ @BindView(R.id.about_source)
+ TextView aboutSource;
+ @BindView(R.id.about_issues)
+ TextView aboutIssues;
+ @BindView(R.id.about_translate)
+ TextView aboutTranslate;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View v = inflater.inflate(R.layout.fragment_about_contribution_tab, container, false);
+ ButterKnife.bind(this, v);
+ SupportUtil.setHtml(aboutSource, R.string.about_source, getString(R.string.url_source));
+ SupportUtil.setHtml(aboutIssues, R.string.about_issues, getString(R.string.url_issues));
+ SupportUtil.setHtml(aboutTranslate, R.string.about_translate, getString(R.string.url_translations));
+ return v;
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentCreditsTab.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentCreditsTab.java
new file mode 100644
index 000000000..81e4dabdf
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentCreditsTab.java
@@ -0,0 +1,34 @@
+package it.niedermann.nextcloud.deck.ui.about;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import it.niedermann.nextcloud.deck.BuildConfig;
+import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.SupportUtil;
+
+public class AboutFragmentCreditsTab extends Fragment {
+
+ @BindView(R.id.about_version)
+ TextView aboutVersion;
+ @BindView(R.id.about_maintainer)
+ TextView aboutMaintainer;
+ @BindView(R.id.about_translators)
+ TextView aboutTranslators;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View v = inflater.inflate(R.layout.fragment_about_credits_tab, container, false);
+ ButterKnife.bind(this, v);
+ SupportUtil.setHtml(aboutVersion, R.string.about_version, "v" + BuildConfig.VERSION_NAME);
+ SupportUtil.setHtml(aboutMaintainer, R.string.about_maintainer);
+ SupportUtil.setHtml(aboutTranslators, R.string.about_translators_transifex, getString(R.string.url_translations));
+ return v;
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentLicenseTab.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentLicenseTab.java
new file mode 100644
index 000000000..6f5371b56
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/about/AboutFragmentLicenseTab.java
@@ -0,0 +1,38 @@
+package it.niedermann.nextcloud.deck.ui.about;
+
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import it.niedermann.nextcloud.deck.R;
+import it.niedermann.nextcloud.deck.SupportUtil;
+
+public class AboutFragmentLicenseTab extends Fragment {
+
+ @BindView(R.id.about_icons_disclaimer)
+ TextView iconsDisclaimer;
+ @BindView(R.id.about_app_license_button)
+ Button appLicenseButton;
+
+ @OnClick(R.id.about_app_license_button)
+ void openLicense() {
+ startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.url_license))));
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View v = inflater.inflate(R.layout.fragment_about_license_tab, container, false);
+ ButterKnife.bind(this, v);
+ SupportUtil.setHtml(iconsDisclaimer, R.string.about_icons_disclaimer, getString(R.string.about_app_icon_author));
+ return v;
+ }
+} \ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_info_outline_black_24dp.xml b/app/src/main/res/drawable/ic_info_outline_black_24dp.xml
new file mode 100644
index 000000000..49a5d9d88
--- /dev/null
+++ b/app/src/main/res/drawable/ic_info_outline_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="24dp"
+ android:viewportHeight="24.0" android:viewportWidth="24.0"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#FF000000" android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_view_column_black_24dp.xml b/app/src/main/res/drawable/ic_view_column_black_24dp.xml
new file mode 100644
index 000000000..c7de3731f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_view_column_black_24dp.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="24dp"
+ android:viewportHeight="24.0" android:viewportWidth="24.0"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="#FF000000" android:pathData="M10,18h5L15,5h-5v13zM4,18h5L9,5L4,5v13zM16,5v13h5L21,5h-5z"/>
+</vector>
diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml
new file mode 100644
index 000000000..00f694eff
--- /dev/null
+++ b/app/src/main/res/layout/activity_about.xml
@@ -0,0 +1,17 @@
+<?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:orientation="vertical">
+
+ <android.support.design.widget.TabLayout
+ android:id="@+id/tabs"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <android.support.v4.view.ViewPager
+ android:id="@+id/pager"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_about_contribution_tab.xml b/app/src/main/res/layout/fragment_about_contribution_tab.xml
new file mode 100644
index 000000000..b67fc4e27
--- /dev/null
+++ b/app/src/main/res/layout/fragment_about_contribution_tab.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="@dimen/activity_horizontal_margin">
+
+ <TextView
+ android:id="@+id/about_source_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_source_title" />
+
+ <TextView
+ android:id="@+id/about_source"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_source" />
+
+ <TextView
+ android:id="@+id/about_issues_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_issues_title" />
+
+ <TextView
+ android:id="@+id/about_issues"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_issues" />
+
+ <TextView
+ android:id="@+id/about_translate_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_translate_title" />
+
+ <TextView
+ android:id="@+id/about_translate"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_translate" />
+ </LinearLayout>
+</ScrollView> \ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_about_credits_tab.xml b/app/src/main/res/layout/fragment_about_credits_tab.xml
new file mode 100644
index 000000000..59f1931b1
--- /dev/null
+++ b/app/src/main/res/layout/fragment_about_credits_tab.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="@dimen/activity_horizontal_margin">
+
+ <TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/textView"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginBottom="30dp"
+ android:layout_marginTop="30dp"
+ android:drawableTop="@mipmap/ic_launcher"
+ android:text="@string/app_name"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textSize="26sp" />
+
+ <TextView
+ android:id="@+id/about_version_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_version_title" />
+
+ <TextView
+ android:id="@+id/about_version"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_version" />
+
+ <TextView
+ android:id="@+id/about_maintainer_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_maintainer_title" />
+
+ <TextView
+ android:id="@+id/about_maintainer"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_maintainer" />
+
+ <TextView
+ android:id="@+id/about_developers_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_developers_title" />
+
+ <TextView
+ android:id="@+id/about_developers"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_developers" />
+
+ <TextView
+ android:id="@+id/about_translators_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_translators_title" />
+
+ <TextView
+ android:id="@+id/about_translators"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_translators_transifex" />
+
+ <TextView
+ android:id="@+id/about_testers_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_testers_title" />
+
+ <TextView
+ android:id="@+id/about_testers"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_testers" />
+ </LinearLayout>
+</ScrollView> \ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_about_license_tab.xml b/app/src/main/res/layout/fragment_about_license_tab.xml
new file mode 100644
index 000000000..73fe550d7
--- /dev/null
+++ b/app/src/main/res/layout/fragment_about_license_tab.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="@dimen/activity_horizontal_margin">
+
+ <TextView
+ android:id="@+id/about_app_license_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_app_license_title" />
+
+ <TextView
+ android:id="@+id/about_app_license"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_app_license" />
+
+ <Button
+ android:id="@+id/about_app_license_button"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/about_app_license_button" />
+
+ <TextView
+ android:id="@+id/about_icons_disclaimer_title"
+ style="?android:attr/listSeparatorTextViewStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:text="@string/about_icons_disclaimer_title" />
+
+ <TextView
+ android:id="@+id/about_icons_disclaimer"
+ style="?android:attr/editTextPreferenceStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="10dp"
+ android:text="@string/about_icons_disclaimer" />
+ </LinearLayout>
+</ScrollView> \ 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 1807d34b2..d5733f5a1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -6,4 +6,39 @@
<string name="nav_header_subtitle">Client for Nextcloud Deck app</string>
<string name="nav_header_desc">Navigation header</string>
<string name="action_settings">Settings</string>
+
+ <!-- About -->
+ <string name="about">About</string>
+ <string name="about_version_title">Version</string>
+ <string name="about_version">You are currently using &lt;strong>%1$s&lt;/strong></string>
+ <string name="about_maintainer_title">Maintainer</string>
+ <string name="about_maintainer" translatable="false">&lt;a href="https://www.niedermann.it/">Niedermann IT-Dienstleistungen&lt;/a></string>
+ <string name="about_developers_title">Developers</string>
+ <string name="about_developers" translatable="false">Stefan Niedermann, Artur Dawtjan</string>
+ <string name="about_translators_title">Translators</string>
+ <string name="about_translators_transifex">Nextcloud community on &lt;a href="%1$s">Transifex&lt;/a></string>
+ <string name="about_testers_title">Testers</string>
+ <string name="about_testers" translatable="false">Julius, David</string>
+ <string name="about_source_title">Source code</string>
+ <string name="about_source">This project is hosted on GitHub: &lt;a href="%1$s">%1$s&lt;/a></string>
+ <string name="about_issues_title">Issues</string>
+ <string name="about_issues">You can report bugs, enhancement proposals and feature requests at the GitHub issue tracker: &lt;a href="%1$s">%1$s&lt;/a></string>
+ <string name="about_translate_title">Translate</string>
+ <string name="about_translate">Join the Nextcloud team on Transifex and help us to translate this app: &lt;a href="%1$s">%1$s&lt;/a></string>
+ <string name="about_app_license_title">App license</string>
+ <string name="about_app_license">This application is licensed under the GNU GENERAL PUBLIC LICENSE v3+.</string>
+ <string name="about_app_license_button">View license</string>
+ <string name="about_app_icon_author" translatable="false">Julius Härtl (&lt;a href="https://github.com/nextcloud/deck/commit/8c04ea8dc99e9b392f4039e8e5e6964d5a6d3453#diff-f3716cc279904617b1a21078526b6bf1R1">GitHub&lt;/a>)</string>
+ <string name="about_icons_disclaimer_title">Icons</string>
+ <string name="about_icons_disclaimer">&lt;p>Original icon made by %1$s&lt;/p>&lt;p>All further icons used by this app are &lt;a href="https://materialdesignicons.com/">Material Design Icons&lt;/a> made by Google Inc. and licensed under the Apache 2.0 License.&lt;/p></string>
+ <string name="about_credits_tab_title">Credits</string>
+ <string name="about_contribution_tab_title">Contribution</string>
+ <string name="about_license_tab_title">License</string>
+
+
+ <!-- URLs -->
+ <string name="url_source" translatable="false">https://github.com/stefan-niedermann/nextcloud-deck</string>
+ <string name="url_issues" translatable="false">https://github.com/stefan-niedermann/nextcloud-deck/issues</string>
+ <string name="url_license" translatable="false">https://github.com/stefan-niedermann/nextcloud-deck/blob/master/LICENSE</string>
+ <string name="url_translations" translatable="false">https://www.transifex.com/nextcloud/nextcloud/</string>
</resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index d92ae9fda..539a087c7 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -4,7 +4,7 @@
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/primary</item>
- <item name="colorPrimaryDark">@color/primary_dark</item>
+ <item name="colorPrimaryDark">@color/primary</item>
<item name="colorAccent">@color/accent</item>
</style>
diff --git a/app/src/main/res/xml/searchable.xml b/app/src/main/res/xml/searchable.xml
new file mode 100644
index 000000000..47128864a
--- /dev/null
+++ b/app/src/main/res/xml/searchable.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<searchable xmlns:android="http://schemas.android.com/apk/res/android"
+ android:hint="Search deck"
+ android:label="@string/app_name"></searchable> \ No newline at end of file