I have activity like this:
package com.nkdroid.daynighttheme;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.AppCompatDelegate;
import android.widget.TextView;
public class ModeActivity extends AppCompatActivity {
private TextView txtModeType;
int modeType;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auto_mode);
txtModeType = (TextView) findViewById(R.id.txtModeType);
modeType = AppCompatDelegate.getDefaultNightMode();
if (modeType == AppCompatDelegate.MODE_NIGHT_AUTO) {
txtModeType.setText("Default Mode: Auto");
} else if (modeType == AppCompatDelegate.MODE_NIGHT_YES) {
txtModeType.setText("Default Mode: Night");
} else if (modeType == AppCompatDelegate.MODE_NIGHT_NO) {
txtModeType.setText("Default Mode: Day");
}
}
}`
Is it possible to get which mode (day or night) is active now if default mode set to AUTO?
Somehow @harshithdwivedi's answer didn't work for me when the night mode is set from inside the app (using
AppCompatDelegate
). Otherwise it works fine.So I had to add some additional checks like this:
If you are a kotlin developer, then you can use the code below to check which mode your app is in..
For more about the dark theme modes see;
You can get the current mode using the following code,
The following article by Chris Banes explains it nicely.