Skip to content

Commit

Permalink
Add build info: git sha, date, version code and version name to the D…
Browse files Browse the repository at this point in the history
…eveloper Settings
  • Loading branch information
artem-zinnatullin committed Dec 22, 2015
1 parent 86bec6a commit fd13355
Show file tree
Hide file tree
Showing 10 changed files with 281 additions and 15 deletions.
21 changes: 21 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,20 @@ apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.neenbedankt.android-apt'
apply from: '../code_quality_tools/jacoco.gradle'

def getGitSha() {
return 'git rev-parse --short HEAD'.execute().text.trim()
}

def getBuildDateForDebugBuild() {
// To prevent frequent breaking of incremental compilation we don't put minutes and seconds in debug builds.
return new Date().format("dd-MM-yyyy HH:00:00 z", TimeZone.getTimeZone("UTC"))
}

def getBuildDateForReleaseBuild() {
return new Date().format("dd-MM-yyyy HH:mm:ss z", TimeZone.getTimeZone("UTC"))
}


android {
// See build.gradle in the root of the project
compileSdkVersion versions.compileSdk
Expand All @@ -14,6 +28,10 @@ android {
targetSdkVersion versions.targetSdk
versionCode versions.code
versionName versions.name

// Notice that each change of git sha will require recompilation of the BuildConfig class (which can cause full assemble task run).
buildConfigField 'String', 'GIT_SHA', "\"${getGitSha()}\""

testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
}

Expand All @@ -34,10 +52,13 @@ android {
buildTypes {
debug {
signingConfig signingConfigs.qualityMatters
buildConfigField 'String', 'BUILD_DATE', "\"${getBuildDateForDebugBuild()}\""
}

release {
signingConfig signingConfigs.qualityMatters
buildConfigField 'String', 'BUILD_DATE', "\"${getBuildDateForReleaseBuild()}\""

minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.support.annotation.NonNull;
import android.util.DisplayMetrics;

import com.artemzin.qualitymatters.BuildConfig;
import com.artemzin.qualitymatters.QualityMattersApp;
import com.codemonkeylabs.fpslibrary.TinyDancer;
import com.facebook.stetho.Stetho;
Expand Down Expand Up @@ -55,6 +56,26 @@ public DeveloperSettingsModelImpl(@NonNull QualityMattersApp qualityMattersApp,
this.leakCanaryProxy = leakCanaryProxy;
}

@NonNull
public String getGitSha() {
return BuildConfig.GIT_SHA;
}

@NonNull
public String getBuildDate() {
return BuildConfig.BUILD_DATE;
}

@NonNull
public String getBuildVersionCode() {
return String.valueOf(BuildConfig.VERSION_CODE);
}

@NonNull
public String getBuildVersionName() {
return BuildConfig.VERSION_NAME;
}

public boolean isStethoEnabled() {
return developerSettings.isStethoEnabled();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import android.view.ViewGroup;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import com.artemzin.qualitymatters.QualityMattersApp;
Expand All @@ -34,6 +35,18 @@ public class DeveloperSettingsFragment extends BaseFragment implements Developer
@Inject
DeveloperSettingsPresenter presenter;

@Bind(R.id.developer_settings_git_sha_text_view)
TextView gitShaTextView;

@Bind(R.id.developer_settings_build_date_text_view)
TextView buildDateTextView;

@Bind(R.id.developer_settings_build_version_code_text_view)
TextView buildVersionCodeTextView;

@Bind(R.id.developer_settings_build_version_name_text_view)
TextView buildVersionNameTextView;

@Bind(R.id.developer_settings_stetho_switch)
Switch stethoSwitch;

Expand Down Expand Up @@ -85,6 +98,42 @@ void onHttpLoggingLevelChanged(int position) {
presenter.changeHttpLoggingLevel(((HttpLoggingLevel) httpLoggingLevelSpinner.getItemAtPosition(position)).loggingLevel);
}

@Override
@AnyThread
public void changeGitSha(@NonNull String gitSha) {
runOnUiThreadIfFragmentAlive(() -> {
assert gitShaTextView != null;
gitShaTextView.setText(gitSha);
});
}

@Override
@AnyThread
public void changeBuildDate(@NonNull String date) {
runOnUiThreadIfFragmentAlive(() -> {
assert buildDateTextView != null;
buildDateTextView.setText(date);
});
}

@Override
@AnyThread
public void changeBuildVersionCode(@NonNull String versionCode) {
runOnUiThreadIfFragmentAlive(() -> {
assert buildVersionCodeTextView != null;
buildVersionCodeTextView.setText(versionCode);
});
}

@Override
@AnyThread
public void changeBuildVersionName(@NonNull String versionName) {
runOnUiThreadIfFragmentAlive(() -> {
assert buildVersionNameTextView != null;
buildVersionNameTextView.setText(versionName);
});
}

@Override
@AnyThread
public void changeStethoState(boolean enabled) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ public DeveloperSettingsPresenter(@NonNull DeveloperSettingsModelImpl developerS
@Override
public void bindView(@NonNull DeveloperSettingsView view) {
super.bindView(view);

view.changeGitSha(developerSettingsModel.getGitSha());
view.changeBuildDate(developerSettingsModel.getBuildDate());
view.changeBuildVersionCode(developerSettingsModel.getBuildVersionCode());
view.changeBuildVersionName(developerSettingsModel.getBuildVersionName());
view.changeStethoState(developerSettingsModel.isStethoEnabled());
view.changeLeakCanaryState(developerSettingsModel.isLeakCanaryEnabled());
view.changeTinyDancerState(developerSettingsModel.isTinyDancerEnabled());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@

public interface DeveloperSettingsView {

@AnyThread
void changeGitSha(@NonNull String gitSha);

@AnyThread
void changeBuildDate(@NonNull String date);

@AnyThread
void changeBuildVersionCode(@NonNull String versionCode);

@AnyThread
void changeBuildVersionName(@NonNull String versionName);

@AnyThread
void changeStethoState(boolean enabled);

Expand Down
91 changes: 79 additions & 12 deletions app/src/debug/res/layout/fragment_developer_settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,49 +23,116 @@
android:textSize="18sp"
tools:ignore="HardcodedText" />

<TextView
style="@style/DeveloperSettingsCategoryTitle"
android:text="Build info"
tools:ignore="HardcodedText" />

<View style="@style/DeveloperSettingsCategoryDivider" />

<LinearLayout style="@style/DeveloperSettingsItemContainer">

<TextView
style="@style/DeveloperSettingsItemTitle"
android:text="Git sha"
tools:ignore="HardcodedText" />

<TextView
android:id="@+id/developer_settings_git_sha_text_view"
style="@style/DeveloperSettingsItemControl"
android:textIsSelectable="true"
tools:text="86bec6a6595bf7d" />

</LinearLayout>

<LinearLayout style="@style/DeveloperSettingsItemContainer">

<TextView
style="@style/DeveloperSettingsItemTitle"
android:text="Build date"
tools:ignore="HardcodedText" />

<TextView
android:id="@+id/developer_settings_build_date_text_view"
style="@style/DeveloperSettingsItemControl"
android:textIsSelectable="true"
tools:text="2020-09-22 16:35" />

</LinearLayout>

<LinearLayout style="@style/DeveloperSettingsItemContainer">

<TextView
style="@style/DeveloperSettingsItemTitle"
android:text="Build version code"
tools:ignore="HardcodedText" />

<TextView
android:id="@+id/developer_settings_build_version_code_text_view"
style="@style/DeveloperSettingsItemControl"
android:textIsSelectable="true"
tools:text="38" />

</LinearLayout>

<LinearLayout style="@style/DeveloperSettingsItemContainer">

<TextView
style="@style/DeveloperSettingsItemTitle"
android:text="Build version name"
tools:ignore="HardcodedText" />

<TextView
android:id="@+id/developer_settings_build_version_name_text_view"
style="@style/DeveloperSettingsItemControl"
android:textIsSelectable="true"
tools:text="v1.0.1" />

</LinearLayout>

<TextView
style="@style/DeveloperSettingsCategoryTitle"
android:text="Inspection tools"
tools:ignore="HardcodedText" />

<View style="@style/DeveloperSettingsCategoryDivider" />

<LinearLayout style="@style/DeveloperSettingsToolContainer">
<LinearLayout style="@style/DeveloperSettingsItemContainer">

<TextView
style="@style/DeveloperSettingsToolTitle"
style="@style/DeveloperSettingsItemTitle"
android:text="Stetho"
tools:ignore="HardcodedText" />

<Switch
android:id="@+id/developer_settings_stetho_switch"
style="@style/DeveloperSettingsToolSwitch" />
style="@style/DeveloperSettingsItemControl" />

</LinearLayout>

<LinearLayout style="@style/DeveloperSettingsToolContainer">
<LinearLayout style="@style/DeveloperSettingsItemContainer">

<TextView
style="@style/DeveloperSettingsToolTitle"
style="@style/DeveloperSettingsItemTitle"
android:text="LeakCanary"
tools:ignore="HardcodedText" />

<Switch
android:id="@+id/developer_settings_leak_canary_switch"
style="@style/DeveloperSettingsToolSwitch" />
style="@style/DeveloperSettingsItemControl" />

</LinearLayout>

<LinearLayout style="@style/DeveloperSettingsToolContainer">
<LinearLayout style="@style/DeveloperSettingsItemContainer">

<TextView
style="@style/DeveloperSettingsToolTitle"
style="@style/DeveloperSettingsItemTitle"
android:text="TinyDancer"
tools:ignore="HardcodedText" />

<Switch
android:id="@+id/developer_settings_tiny_dancer_switch"
style="@style/DeveloperSettingsToolSwitch" />
style="@style/DeveloperSettingsItemControl" />

</LinearLayout>

Expand All @@ -76,17 +143,17 @@

<View style="@style/DeveloperSettingsCategoryDivider" />

<LinearLayout style="@style/DeveloperSettingsToolContainer">
<LinearLayout style="@style/DeveloperSettingsItemContainer">

<TextView
style="@style/DeveloperSettingsToolTitle"
style="@style/DeveloperSettingsItemTitle"
android:text="Http logging level"
tools:ignore="HardcodedText" />

<android.support.v7.widget.AppCompatSpinner
android:id="@+id/developer_settings_http_logging_level_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content" />

</LinearLayout>

Expand Down
7 changes: 4 additions & 3 deletions app/src/debug/res/values/developer_settings_styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,24 @@
<item name="android:layout_marginTop">2dp</item>
</style>

<style name="DeveloperSettingsToolTitle">
<style name="DeveloperSettingsItemTitle">
<item name="android:layout_weight">1</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">16sp</item>
<item name="android:textColor">#dddddd</item>
</style>

<style name="DeveloperSettingsToolContainer">
<style name="DeveloperSettingsItemContainer">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginTop">@dimen/activity_vertical_margin</item>
<item name="android:orientation">horizontal</item>
</style>

<style name="DeveloperSettingsToolSwitch">
<style name="DeveloperSettingsItemControl">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#dddddd</item>
</style>
</resources>
Loading

0 comments on commit fd13355

Please sign in to comment.