add About section

This commit is contained in:
tibbi 2016-06-01 17:34:51 +02:00
parent 0633d0eceb
commit 92d61fb2d1
10 changed files with 170 additions and 9 deletions

View File

@ -28,6 +28,7 @@ android {
dependencies { dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.jakewharton:butterknife:7.0.1'
} }
def Properties props = new Properties() def Properties props = new Properties()

View File

@ -15,3 +15,16 @@
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *; # public *;
#} #}
# Butterknife
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
@butterknife.* <fields>;
}
-keepclasseswithmembernames class * {
@butterknife.* <methods>;
}

View File

@ -20,7 +20,7 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity <activity
android:name="com.simplemobiletools.flashlight.MainActivity" android:name=".MainActivity"
android:screenOrientation="portrait"> android:screenOrientation="portrait">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN"/>
@ -29,8 +29,13 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity
android:name=".AboutActivity"
android:label="@string/about"
android:screenOrientation="portrait"/>
<receiver <receiver
android:name="com.simplemobiletools.flashlight.MyWidgetProvider" android:name=".MyWidgetProvider"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="Simple Flashlight"> android:label="Simple Flashlight">
<intent-filter> <intent-filter>

View File

@ -0,0 +1,52 @@
package com.simplemobiletools.flashlight;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;
import java.util.Calendar;
import butterknife.Bind;
import butterknife.ButterKnife;
public class AboutActivity extends AppCompatActivity {
@Bind(R.id.about_copyright) TextView copyright;
@Bind(R.id.about_version) TextView version;
@Bind(R.id.about_email) TextView emailTV;
private Resources res;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
ButterKnife.bind(this);
res = getResources();
setupEmail();
setupVersion();
setupCopyright();
}
private void setupEmail() {
final String email = res.getString(R.string.email);
final String appName = res.getString(R.string.app_name);
final String href = "<a href=\"mailto:" + email + "?subject=" + appName + "\">" + email + "</a>";
emailTV.setText(Html.fromHtml(href));
emailTV.setMovementMethod(LinkMovementMethod.getInstance());
}
private void setupVersion() {
final String versionName = BuildConfig.VERSION_NAME;
final String versionText = String.format(res.getString(R.string.version), versionName);
version.setText(versionText);
}
private void setupCopyright() {
final int year = Calendar.getInstance().get(Calendar.YEAR);
final String copyrightText = String.format(res.getString(R.string.copyright), year);
copyright.setText(copyrightText);
}
}

View File

@ -1,7 +1,11 @@
package com.simplemobiletools.flashlight; package com.simplemobiletools.flashlight;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
@ -20,6 +24,25 @@ public class MainActivity extends AppCompatActivity implements MyCamera {
setupCameraImpl(); setupCameraImpl();
} }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.about:
final Intent intent = new Intent(getApplicationContext(), AboutActivity.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void setupCameraImpl() { private void setupCameraImpl() {
cameraImpl = new MyCameraImpl(this); cameraImpl = new MyCameraImpl(this);
cameraImpl.toggleFlashlight(); cameraImpl.toggleFlashlight();

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/about_holder"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/activity_margin">
<TextView
android:id="@+id/about_website"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:text="@string/website"/>
<TextView
android:id="@+id/about_email_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/about_website"
android:layout_marginTop="@dimen/activity_margin"
android:text="@string/email_label"/>
<TextView
android:id="@+id/about_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/about_email_label"
android:text="@string/email"/>
<TextView
android:id="@+id/about_license"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/about_email"
android:layout_marginTop="@dimen/activity_margin"
android:text="@string/license"/>
<TextView
android:id="@+id/about_version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/about_copyright"
android:gravity="center_horizontal"
android:text="v 1.0"/>
<TextView
android:id="@+id/about_copyright"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:text="Copyright © Simple Mobile Tools 2000"/>
</RelativeLayout>

View File

@ -3,10 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_margin">
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<ImageView <ImageView
android:id="@+id/toggle_btn" android:id="@+id/toggle_btn"

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/about"
android:title="@string/about"
app:showAsAction="never"/>
</menu>

View File

@ -1,5 +1,3 @@
<resources> <resources>
<!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_margin">16dp</dimen>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources> </resources>

View File

@ -1,4 +1,13 @@
<resources> <resources>
<string name="app_name">Simple Flashlight</string> <string name="app_name">Simple Flashlight</string>
<string name="camera_error">Obtaining the camera failed</string> <string name="camera_error">Obtaining the camera failed</string>
<!-- About -->
<string name="about">About</string>
<string name="website">For more simple apps please visit:\nhttp://simplemobiletools.com</string>
<string name="email_label">You can send your feedback and new app suggestions at:</string>
<string name="email">hello@simplemobiletools.com</string>
<string name="license">License</string>
<string name="version">v %1$s</string>
<string name="copyright">Copyright © Simple Mobile Tools %1$d</string>
</resources> </resources>