diff --git a/app/build.gradle b/app/build.gradle index 9a9c8197..97edc8fa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "jp.juggler.subwaytooter" minSdkVersion 21 targetSdkVersion 25 - versionCode 18 - versionName "0.1.8" + versionCode 19 + versionName "0.1.9" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActAbout.java b/app/src/main/java/jp/juggler/subwaytooter/ActAbout.java index 29b7face..00da93f9 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActAbout.java +++ b/app/src/main/java/jp/juggler/subwaytooter/ActAbout.java @@ -9,6 +9,7 @@ import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; +import android.widget.LinearLayout; import android.widget.TextView; public class ActAbout extends AppCompatActivity { @@ -19,9 +20,13 @@ public class ActAbout extends AppCompatActivity { static final String url_enty = "https://enty.jp/3WtlzHG10wZv"; static final String developer_acct = "tateisu@mastodon.juggler.jp"; + static final String[] contributors = new String[]{ + "@Balor@freeradical.zone", "update english language", + }; + @Override protected void onCreate( @Nullable Bundle savedInstanceState ){ super.onCreate( savedInstanceState ); - App1.setActivityTheme(this,false); + App1.setActivityTheme( this, false ); setContentView( R.layout.act_about ); try{ @@ -32,13 +37,13 @@ public class ActAbout extends AppCompatActivity { } Button b; - b = (Button) findViewById( R.id.btnDeveloper ); - b.setText( getString(R.string.search_for,developer_acct )); + b = (Button) findViewById( R.id.btnDeveloper ); + b.setText( getString( R.string.search_for, developer_acct ) ); b.setOnClickListener( new View.OnClickListener() { @Override public void onClick( View v ){ Intent data = new Intent(); - data.putExtra(EXTRA_SEARCH,developer_acct); - setResult( RESULT_OK,data ); + data.putExtra( EXTRA_SEARCH, developer_acct ); + setResult( RESULT_OK, data ); finish(); } } ); @@ -50,7 +55,7 @@ public class ActAbout extends AppCompatActivity { open_browser( url_store ); } } ); - + b = (Button) findViewById( R.id.btnDonate ); b.setText( url_enty ); b.setOnClickListener( new View.OnClickListener() { @@ -58,6 +63,38 @@ public class ActAbout extends AppCompatActivity { open_browser( url_enty ); } } ); + + LinearLayout ll = (LinearLayout) findViewById( R.id.llContributors ); + float density = getResources().getDisplayMetrics().density; + int margin_top = (int) ( 0.5f + density * 8 ); + int padding = (int) ( 0.5f + density * 8 ); + + for( int i = 0, ie = contributors.length ; i < ie ; i += 2 ){ + final String acct = contributors[ i ]; + final String works = contributors[ i + 1 ]; + + b = new Button( this ); + // + LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); + if( i < 0 ) lp.topMargin = margin_top; + b.setLayoutParams( lp ); + // + b.setBackgroundResource( R.drawable.btn_bg_transparent ); + b.setPadding( padding, padding, padding, padding ); + b.setAllCaps( false ); + // + b.setText( getString( R.string.search_for, acct ) + "\n" + getString( R.string.thanks_for, works ) ); + b.setOnClickListener( new View.OnClickListener() { + @Override public void onClick( View v ){ + Intent data = new Intent(); + data.putExtra( EXTRA_SEARCH, acct ); + setResult( RESULT_OK, data ); + finish(); + } + } ); + // + ll.addView( b ); + } } void open_browser( String url ){ diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActMain.java b/app/src/main/java/jp/juggler/subwaytooter/ActMain.java index 84f48092..3dcc6fd9 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/ActMain.java +++ b/app/src/main/java/jp/juggler/subwaytooter/ActMain.java @@ -196,12 +196,20 @@ public class ActMain extends AppCompatActivity @Override public void onBackPressed(){ + // メニューが開いていたら閉じる DrawerLayout drawer = (DrawerLayout) findViewById( R.id.drawer_layout ); if( drawer.isDrawerOpen( GravityCompat.START ) ){ drawer.closeDrawer( GravityCompat.START ); return; } + // カラムが0個ならアプリを終了する + if( pager_adapter.getCount() == 0 ){ + ActMain.this.finish(); + return; + } + + // カラムが1個以上ある場合は設定に合わせて挙動を変える switch( pref.getInt( Pref.KEY_BACK_BUTTON_ACTION, 0 ) ){ default: case ActAppSetting.BACK_ASK_ALWAYS: diff --git a/app/src/main/res/layout/act_about.xml b/app/src/main/res/layout/act_about.xml index 64285406..86f0c1d4 100644 --- a/app/src/main/res/layout/act_about.xml +++ b/app/src/main/res/layout/act_about.xml @@ -47,7 +47,7 @@ @@ -63,12 +63,13 @@ android:layout_height="wrap_content" android:background="@drawable/btn_bg_transparent" android:padding="8dp" - tools:text="tateisu@mastodon.juggler.jp" android:textAllCaps="false" + tools:text="tateisu@mastodon.juggler.jp" /> + @@ -84,13 +85,13 @@ android:layout_height="wrap_content" android:background="@drawable/btn_bg_transparent" android:padding="8dp" - tools:text="rate_on_store" android:textAllCaps="false" + tools:text="rate_on_store" /> @@ -106,8 +107,28 @@ android:layout_height="wrap_content" android:background="@drawable/btn_bg_transparent" android:padding="8dp" - tools:text="enty...." android:textAllCaps="false" + tools:text="enty...." + /> + + + + + + - \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 662b0fe2..eee8e749 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -182,4 +182,6 @@ 通知の削除 %1$s を検索 公開範囲をアカウントの既定値に狭めました + contributor + Thanks for %1$s diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9468814f..1bbba7e6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -181,4 +181,6 @@ This will empty your notification on your instance.\nAre you sure? Search %1$s Visibility is spoiled for account. + contributor + Thanks for %1$s