/*
* Copyright (C) 2014-2015 University of South Florida (sjbarbeau@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onebusaway.android.report.ui;
import org.onebusaway.android.R;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Color;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by Cagri Cetin
*/
public class BaseReportActivity extends AppCompatActivity {
public static final String CLOSE_REQUEST = "BaseReportActivityClose";
public static final String LOCATION_STRING = "locationString";
protected RelativeLayout mInfoHeader;
protected FrameLayout mInLineInstructions;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && data != null && data.getBooleanExtra(CLOSE_REQUEST, false)) {
finish();
}
}
@SuppressLint("CommitTransaction")
protected FragmentTransaction setFragment(Fragment fragment, int containerViewId) {
FragmentManager fm = getSupportFragmentManager();
return fm.beginTransaction().replace(containerViewId, fragment);
}
protected void removeFragmentByTag(String tag) {
FragmentManager manager = getSupportFragmentManager();
Fragment fragment = manager.findFragmentByTag(tag);
if (fragment != null) {
FragmentTransaction trans = manager.beginTransaction();
trans.remove(fragment);
trans.commit();
manager.popBackStack();
}
}
protected void setUpProgressBar() {
ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT,
ActionBar.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.END;
ProgressBar progressBar = new ProgressBar(this);
progressBar.setIndeterminate(true);
progressBar.setVisibility(View.GONE);
progressBar.setIndeterminate(true);
progressBar.setLayoutParams(params);
progressBar.getIndeterminateDrawable().setColorFilter(Color.WHITE, android.graphics.PorterDuff.Mode.MULTIPLY);
ActionBar ab = getSupportActionBar();
if (ab != null){
ab.setDisplayShowCustomEnabled(true);
ab.setCustomView(progressBar);
}
}
public void showProgress(Boolean visible) {
if (getSupportActionBar() == null)
return;
if (visible)
getSupportActionBar().getCustomView().setVisibility(View.VISIBLE);
else
getSupportActionBar().getCustomView().setVisibility(View.GONE);
}
protected void createToastMessage(String message) {
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
protected void addInfoText(String text) {
// Instructions in header of report
if (mInfoHeader == null){
mInfoHeader = (RelativeLayout) findViewById(R.id.ri_info_header);
}
((TextView) mInfoHeader.findViewById(R.id.ri_info_text)).setText(text);
if (mInfoHeader.getVisibility() != View.VISIBLE) {
mInfoHeader.setVisibility(View.VISIBLE);
}
// Instructions in body of report
if (mInLineInstructions == null) {
mInLineInstructions = (FrameLayout) findViewById(R.id.in_line_instructions_container);
}
((ImageView) findViewById(R.id.in_line_instructions_image)).setColorFilter(
getResources().getColor(R.color.material_gray));
((TextView) mInLineInstructions.findViewById(R.id.in_line_instructions_text)).setText(text);
if (mInLineInstructions.getVisibility() != View.VISIBLE) {
mInLineInstructions.setVisibility(View.VISIBLE);
}
}
protected boolean isInfoVisible() {
if (mInfoHeader == null){
mInfoHeader = (RelativeLayout) findViewById(R.id.ri_info_header);
}
return mInfoHeader.getVisibility() == View.VISIBLE;
}
protected void removeInfoText() {
if (mInfoHeader == null){
mInfoHeader = (RelativeLayout) findViewById(R.id.ri_info_header);
}
((TextView) mInfoHeader.findViewById(R.id.ri_info_text)).setText("");
mInfoHeader.setVisibility(View.GONE);
if (mInLineInstructions == null) {
mInLineInstructions = (FrameLayout) findViewById(R.id.in_line_instructions_container);
}
((TextView) mInLineInstructions.findViewById(R.id.in_line_instructions_text)).setText("");
mInLineInstructions.setVisibility(View.GONE);
}
}