Android Open Source - Sertimus Main Service






From Project

Back to project page Sertimus.

License

The source code is released under:

GNU General Public License

If you think the Android project Sertimus listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*  Sertimus - A live wallpaper featuring a cute Chao.
  // w w w  .j  a va 2 s  . co  m
    Copyright (C) 2013  Kevin Negrin

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */

//  MainService.java - This is the heart of the live wallpaper.

package gameaddict30.wallpaper.sertimus;

import gameaddict30.wallpaper.sertimus.objects.*;
import android.content.SharedPreferences;
import android.service.wallpaper.WallpaperService;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.preference.PreferenceManager;

public final class MainService extends WallpaperService  {
  public static final long frameRate = 30l;
  
  @Override
  public Engine onCreateEngine() {
    return new SertimusEngine();
  }

  private class SertimusEngine extends Engine {
    private final Object logicLock = new Object();
    
    private boolean touchEnabled;
    
    private MainCanvas canv;
    private LogicThread logicT;
    
    private void initSettings() {
      SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MainService.this);
      touchEnabled = prefs.getBoolean("pref_key_touch", true);
    }
    
    @Override
    public void onVisibilityChanged(boolean visible) {
      if (visible)
        initSettings();
      
      logicT.setPause(!visible);
      
      super.onVisibilityChanged(visible);
    }

    @Override
    public void onSurfaceChanged(SurfaceHolder holder, int format,
        int width, int height) {
      if (canv == null && logicT == null) {
        canv = new MainCanvas(getApplicationContext(), holder, R.drawable.tile_grass_optimized);
        
        new Sertimus(canv);
        
        for (int x=0; x < 20; x++) {
          new GrassStrands(canv);
        }
        
        logicT = new LogicThread(canv, logicLock);
        logicT.paused = false;
      } else {
        logicT.onSurfaceChanged(width, height);
      }
      super.onSurfaceChanged(holder, format, width, height);
    }

    @Override
    public void onSurfaceDestroyed(SurfaceHolder holder) {
      logicT.finish();
      logicT = null;
      super.onSurfaceDestroyed(holder);
    }

    @Override
    public void onTouchEvent(MotionEvent event) {
      if (touchEnabled)
        logicT.queueMotionEvent(event);
      super.onTouchEvent(event);
    }
  }
}




Java Source Code List

gameaddict30.wallpaper.sertimus.DrawThread.java
gameaddict30.wallpaper.sertimus.LogicThread.java
gameaddict30.wallpaper.sertimus.MainCanvas.java
gameaddict30.wallpaper.sertimus.MainService.java
gameaddict30.wallpaper.sertimus.activities.MyPreferencesActivity.java
gameaddict30.wallpaper.sertimus.activities.SetWallpaperActivity.java
gameaddict30.wallpaper.sertimus.constants.CharacterAnimation.java
gameaddict30.wallpaper.sertimus.events.LiveObjectMotionEvent.java
gameaddict30.wallpaper.sertimus.interfaces.InteractiveLiveObject.java
gameaddict30.wallpaper.sertimus.interfaces.TalkableLiveObject.java
gameaddict30.wallpaper.sertimus.objects.BackgroundTile.java
gameaddict30.wallpaper.sertimus.objects.GrassStrands.java
gameaddict30.wallpaper.sertimus.objects.LiveObject.java
gameaddict30.wallpaper.sertimus.objects.Sertimus.java
gameaddict30.wallpaper.sertimus.objects.TalkBubble.java
gameaddict30.wallpaper.sertimus.utilities.Arithmetic.java
gameaddict30.wallpaper.sertimus.utilities.Strings.java