YearSalaryActivity.java :  » App » tjmoid » info » piwai » tjmoid » Android Open Source

Android Open Source » App » tjmoid 
tjmoid » info » piwai » tjmoid » YearSalaryActivity.java
/*
 * Copyright 2010 Pierre-Yves Ricau (py.ricau+tjmoid@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 info.piwai.tjmoid;

import info.piwai.tjmoid.CalculateurSalaire.Builder;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.Editable;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.widget.EditText;
import android.widget.TextView;

import com.googlecode.androidannotations.annotations.Click;
import com.googlecode.androidannotations.annotations.Layout;
import com.googlecode.androidannotations.annotations.ViewById;

@Layout(R.layout.year_salary)
public class YearSalaryActivity extends TrackingActivity {

  @ViewById
  EditText tjmInput;

  @ViewById
  TextView salaireBrutAnnuelTextView;

  @ViewById
  TextView salaireBrutMensuelTextView;

  @ViewById
  TextView salaireNetMensuelTextView;

  private CalculateurSalaire calculateurSalaire;

  private CalculateurSalaire calculateurSalaireNoHolliday;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    calculateurSalaire = buildCalculateurSalaire();

    calculateurSalaireNoHolliday = buildNoHollidayCalculateurSalaire();

    tjmInput.addTextChangedListener(new AbstractTextWatcher() {
      @Override
      public void afterTextChanged(Editable s) {
        onTjmChanged();
      }
    });
  }

  @Click
  void monthlySalaryButton() {
    Intent intent = new Intent(YearSalaryActivity.this, MonthlySalaryActivity.class);
    int defaultTjm = tjmFromInput();
    intent.putExtra(MonthlySalaryActivity.DEFAULT_TJM_EXTRA, defaultTjm);
    startActivity(intent);
  }

  private void onTjmChanged() {
    int tjm = tjmFromInput();

    long salaireBrutAnnuel = calculateurSalaire.calculerSalaireBrut(tjm);
    long salaireBrutAnnuelNoHolliday = calculateurSalaireNoHolliday.calculerSalaireBrut(tjm);

    salaireBrutAnnuelTextView.setText(salaireBrutAnnuel + " / " + salaireBrutAnnuelNoHolliday + " euros");

    long salaireBrutMensuel = salaireBrutAnnuel / 12;
    long salaireBrutMensuelNoHolliday = salaireBrutAnnuelNoHolliday / 12;
    salaireBrutMensuelTextView.setText(salaireBrutMensuel + " / " + salaireBrutMensuelNoHolliday + " euros");

    long salaireNetMensuel = (long) (((double) salaireBrutMensuel) * 0.77);
    long salaireNetMensuelNoHolliday = (long) (((double) salaireBrutMensuelNoHolliday) * 0.77);
    salaireNetMensuelTextView.setText(salaireNetMensuel + " / " + salaireNetMensuelNoHolliday + " euros");
  }

  private int tjmFromInput() {
    int tjm;
    String tjmString = tjmInput.getText().toString();

    if ("".equals(tjmString)) {
      tjm = 0;
    } else {
      tjm = Integer.parseInt(tjmString);
    }
    return tjm;
  }

  @Override
  protected void onResume() {
    super.onResume();
    calculateurSalaire = buildCalculateurSalaire();
    calculateurSalaireNoHolliday = buildNoHollidayCalculateurSalaire();
    onTjmChanged();
  }

  private CalculateurSalaire buildCalculateurSalaire() {

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

    Builder builder = new CalculateurSalaire.Builder();
    builder.salaireBrutDeBase(getDouble(preferences, "salaireBrutDeBase", 2584)) //
        .tauxChargesSocialesPatronales(getDouble(preferences, "tauxChargesSocialesPatronales", 1.58)) //
        .tauxPartageIngeEntreprise(getDouble(preferences, "tauxPartageIngeEntreprise", 0.6)) //
        .nbJoursTravaillesAnnuels(getDouble(preferences, "nbJoursTravaillesAnnuels", 219)) //
        .tauxMargeCommerciale(getDouble(preferences, "tauxMargeCommerciale", 0.1));
    return builder.build();
  }

  private CalculateurSalaire buildNoHollidayCalculateurSalaire() {

    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

    Builder builder = new CalculateurSalaire.Builder();
    builder.salaireBrutDeBase(getDouble(preferences, "salaireBrutDeBase", 2584)) //
        .tauxChargesSocialesPatronales(getDouble(preferences, "tauxChargesSocialesPatronales", 1.58)) //
        .tauxPartageIngeEntreprise(getDouble(preferences, "tauxPartageIngeEntreprise", 0.6)) //
        .nbJoursTravaillesAnnuels(253) //
        .tauxMargeCommerciale(getDouble(preferences, "tauxMargeCommerciale", 0.1));
    return builder.build();
  }

  private double getDouble(SharedPreferences preferences, String key, double defaultValue) {
    String stringValue = preferences.getString(key, "");
    try {
      return Double.parseDouble(stringValue);
    } catch (NumberFormatException e) {
      return defaultValue;
    }
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    MenuItem settingsItem = menu.add("Paramtres");
    settingsItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
      @Override
      public boolean onMenuItemClick(MenuItem item) {
        startPreferencesActivity();
        return true;
      }
    });
    return true;
  }

  private void startPreferencesActivity() {
    Intent preferencesActivityIntent = new Intent(YearSalaryActivity.this, Preferences.class);
    startActivity(preferencesActivityIntent);
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.