/*
* Android SDK for Piwik
*
* @link https://github.com/piwik/piwik-android-sdk
* @license https://github.com/piwik/piwik-sdk-android/blob/master/LICENSE BSD-3 Clause
*/
package com.piwik.demo;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import org.piwik.sdk.dispatcher.Packet;
import org.piwik.sdk.extra.PiwikApplication;
import org.piwik.sdk.extra.TrackHelper;
import java.util.ArrayList;
import java.util.Collections;
import timber.log.Timber;
public class SettingsActivity extends Activity {
private void refreshUI(final Activity settingsActivity) {
// auto track button
Button button = (Button) findViewById(R.id.bindtoapp);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TrackHelper.track().screens(getApplication()).with(((PiwikApplication) getApplication()).getTracker());
}
});
// Dry run
CheckBox dryRun = (CheckBox) findViewById(R.id.dryRunCheckbox);
dryRun.setChecked(((PiwikApplication) getApplication()).getTracker().getDryRunTarget() != null);
dryRun.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((PiwikApplication) getApplication()).getTracker().setDryRunTarget(((CheckBox) v).isChecked() ? Collections.synchronizedList(new ArrayList<Packet>()) : null);
}
});
// out out
CheckBox optOut = (CheckBox) findViewById(R.id.optOutCheckbox);
optOut.setChecked(((PiwikApplication) getApplication()).getTracker().isOptOut());
optOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((PiwikApplication) getApplication()).getTracker().setOptOut(((CheckBox) v).isChecked());
}
});
// dispatch interval
EditText input = (EditText) findViewById(R.id.dispatchIntervallInput);
input.setText(Long.toString(
((PiwikApplication) getApplication()).getTracker().getDispatchInterval()
));
input.addTextChangedListener(
new TextWatcher() {
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
try {
int interval = Integer.valueOf(charSequence.toString().trim());
((PiwikApplication) getApplication()).getTracker()
.setDispatchInterval(interval);
} catch (NumberFormatException e) {
Timber.d("not a number: %s", charSequence.toString());
}
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
}
}
);
//session Timeout Input
input = (EditText) findViewById(R.id.sessionTimeoutInput);
input.setText(Long.toString(
(((PiwikApplication) getApplication()).getTracker().getSessionTimeout() / 60000)
));
input.addTextChangedListener(
new TextWatcher() {
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
try {
int timeoutMin = Integer.valueOf(charSequence.toString().trim());
timeoutMin = Math.abs(timeoutMin);
((PiwikApplication) getApplication()).getTracker()
.setSessionTimeout(timeoutMin * 60);
} catch (NumberFormatException e) {
((EditText) settingsActivity.findViewById(R.id.sessionTimeoutInput)).setText("30");
Timber.d("not a number: %s", charSequence.toString());
}
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
}
}
);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
refreshUI(this);
}
}